c ++ - 从自定义类转换为内置类型

时间:2013-08-30 13:49:30

标签: c++ casting

为了清楚起见,让我的新班级成为:

class MyInt{
    public: 
      MyInt(int x){theInt = x /10;} 
      int operator+(int x){return 10 * theInt + x;} 
    private 
      int theInt; 
};

让我说我希望能够定义:

MyInt Three(30); 
int thirty = Three; 

但是为了得到这个结果,我正在写:

MyInt Three(30); 
int thirty = Three + 0; 

如何从我的Custom类自动转换为内置类型?

1 个答案:

答案 0 :(得分:14)

使用类型转换功能:

class MyInt{
    public: 
      MyInt(int x){theInt = x /10;} 
      int operator+(int x){return 10 * theInt + x;} 

      operator int() const { return theInt; } // <--

    private 
      int theInt; 
};