C++ 重载+;=C+中的运算符+;-如何传递左操作数?
我需要创建一个接受双参数的操作符C++ 重载+;=C+中的运算符+;-如何传递左操作数?,c++,parameters,operator-overloading,operands,C++,Parameters,Operator Overloading,Operands,我需要创建一个接受双参数的操作符 myClass myobject(); double mydouble = 10000; mydouble += myobject; 我的接线员: double operator+=(double value, const myclass& object) { value += object.value; return value; } 参数值作为零传递给运算符+=,即使mydouble已初始化为10000
myClass myobject();
double mydouble = 10000;
mydouble += myobject;
我的接线员:
double operator+=(double value, const myclass& object)
{
value += object.value;
return value;
}
参数值作为零传递给运算符+=,即使mydouble已初始化为10000
如何创建可以接受左操作数作为参数的运算符?正确的原型如下:
double& operator+=(double& value, const myClass& obj)
正确的原型如下所示:
double& operator+=(double& value, const myClass& obj)
你是说
value
不会因为你忘记通过引用传递value
而改变吗?还有myClass myobject()
是一个名为myobject
的函数,不带任何参数,并返回myClass
。查看最烦人的解析。您的意思是value
不会因为您忘记通过引用传递value
而改变吗是一个名为myobject
的函数,不带任何参数,并返回myClass
。请参阅最烦人的解析。请参阅,以获取赋值运算符的类内和类外重载的完整列表。@Crayzeew如果我的答案符合您建议的链接,请参阅。是的,您的答案完全正确,并且符合该链接。对不起,有任何困惑;我并不是说我的评论是对你答案的更正,而是为了这篇文章的目的而做的一个补充。如果我(或其他人)再次遇到这个问题,我也会在一定程度上提醒自己(或其他人)查阅完整的清单请参阅赋值运算符的类内重载和类外重载的完整列表。@Crayzeew如果我的答案符合您建议的链接,则说明您的答案完全正确且符合该链接。对不起,有任何困惑;我并不是说我的评论是对你答案的更正,而是为了这篇文章的目的而做的一个补充。如果我(或其他人)再次遇到这个问题,我也会在一定程度上提醒自己(或其他人)查阅完整的清单D