C++ 分配变量和类的类型

C++ 分配变量和类的类型,c++,C++,请帮帮我,让我问一个愚蠢的问题。 我将变量x声明为DeriveType DeriveType是一个类。 我想给x赋值一个整数y,例如 int y=x 但是当我编译时,编译器会显示错误 错误:无法将“const DerivType”转换为“int” 请告诉我如何解决这个问题。 非常感谢你。 你诚挚的 这是DerivType类 class DerivType; typedef DerivType (*ddf_FctPtr)(const DerivType&); class DerivTy

请帮帮我,让我问一个愚蠢的问题。 我将变量x声明为DeriveType DeriveType是一个类。 我想给x赋值一个整数y,例如 int y=x 但是当我编译时,编译器会显示错误 错误:无法将“const DerivType”转换为“int” 请告诉我如何解决这个问题。 非常感谢你。 你诚挚的

这是DerivType类

class DerivType;

typedef DerivType (*ddf_FctPtr)(const DerivType&);

class DerivType { private: interval f, df, ddf;

public: DerivType ( ); 
DerivType ( const interval&, const interval&, const interval& ); 
DerivType ( const DerivType& );

DerivType& operator= ( const DerivType& );

friend DerivType DerivConst ( const real& );
friend DerivType DerivConst ( const interval& );
friend DerivType DerivVar   ( const real& );
friend DerivType DerivVar   ( const interval& );

friend inline const interval fValue   ( const DerivType& );  
friend inline const interval dfValue  ( const DerivType& );  
friend inline const interval ddfValue ( const DerivType& );  

friend DerivType operator+ ( const DerivType& );
friend DerivType operator- ( const DerivType& );

.... 
我有一个这样的函数

DerivType f ( const DerivType& x )
{
        DerivType result;
        DerivType xx;
        double sum;
        xx = x;
        //Convert x from DerivType to double
        void *pVoidx = &xx;                                     [1]
        double *pDoublex = static_cast<double*>(pVoidx);        [2]
        MLPutReal(lp, *pDoublex);

        MLGetReal(lp, &sum);

        //Convert from double to DerivType for the return value of function
        printf( "x = %f, result = %f\n", *pDoublex, sum);
        void *pSum=&sum;                                            [3]
        DerivType *pDerivTypeSum = static_cast<DerivType*>(pSum);   [4]
    return *pDerivTypeSum;
}
此功能正常工作。但是我的老师说它不是好代码,因为即使代码在这种情况下工作,它仍然依赖于实现和架构。他给了我链接:^]

你能帮我改进一下这个代码吗,即[1]、[2]、[3]、[4]

我的想法是如何从DerivType转换为double/int,反之亦然

感谢您的阅读和帮助

我非常感激你的暗示

您诚挚的

多谢各位
您诚挚的,

如果将您的类型转换为int有意义,那么您可以提供一个转换运算符:

class DeriveType {
    //...
    operator int() {return <some integer value>;}
    //...
};

如果没有意义,那么就不要编写试图这样做的代码。

从DeriveType转换为int意味着什么?您可能应该编写一个转换运算符。感谢您的回复。你很好。亲爱的专业人士,我如何使用你的点击,我不能使用:inty=intx;事实并非如此work@nothingx0x:如果转换有意义,那么您必须添加转换运算符,如我所说。如果它没有意义,那么就不要像我说的那样尝试去做。