我想重载operator =并且我有以下运算符函数
int IntegerClass::operator=(IntegerClass integer) {
return integer.number;
}
这应该是正确的吗?
在另一个类中,我想将对象private member(int)分配给另一个int,即
int x = integerClass;
但是当我编译时,我得到以下错误
error: cannot convert 'std::IntegerClass' to 'int' in initialization
我的运算符重载的实现有什么问题?函数应该是什么样的?
答案 0 :(得分:4)
您的运算符将一个IntegerClass的赋值重载到另一个,但您尝试将(实际上它的初始化)分配给内置的int。您需要定义隐式转换运算符。
代码应该是这样的(对不起,我不记得确切的语法)
IntegerClass::operator int() {
return number;
}