【发布时间】:2019-01-20 08:47:03
【问题描述】:
有课:
class MyClass
{
private:
double value;
public:
MyClass()
{
this->value = 0;
}
MyClass(double value)
{
this->value = value;
}
MyClass& operator + (MyClass & outerObj);
};
为什么这种过载会起作用:
MyClass& MyClass::operator + (MyClass & outerObj)
{
MyClass retObject(this->value + outerObj.value);
return retObject;
}
但是这个不是吗?
MyClass& MyClass::operator + (MyClass & outerObj)
{
return MyClass(this->value + outerObj.value);
}
VC++ 发出警告:
MyClass::MyClass(双值)
+3 重载
非常量引用的初始值必须是左值
我无法理解问题所在。毕竟,它返回的内容基本相同。
【问题讨论】:
标签: c++ oop reference operator-overloading