在C ++中重载=运算符的特殊情况

时间:2013-03-29 05:20:52

标签: c++ operator-overloading

如何以我可以执行的方式重载=运算符

int someInt;
MyClass instanceOfMyClass;
someInt = instanceOfMyClass;

MyClass包含一个名为number的整数?

2 个答案:

答案 0 :(得分:2)

您无法为类型operator=重载int。您真正需要的是operator int()的转换运算符MyClass。在您的情况下,考虑x是您班级的私人成员:

operator int() { return x; }

答案 1 :(得分:0)

在大多数情况下,我会避免这样做,因为很难说清楚到底发生了什么。那说:

class MyClass {
 public:
  operator int() { return number; }

 private:
  int number;
};

这会为您的类创建一个(隐式)转换运算符。