【问题标题】:Overloading += operator in C++ - How do you pass the left operand?在 C++ 中重载 += 运算符 - 如何传递左操作数?
【发布时间】:2016-02-06 15:40:28
【问题描述】:

我需要创建一个接受双“参数”的运算符。

myClass myobject();

double mydouble = 10000;

mydouble += myobject;

我的接线员:

double operator+=(double value, const myclass& object)
{
    value += object.value;           
    return  value;
}

参数值作为零传递给运算符 +=,即使 mydouble 初始化为 10000。

如何创建一个可以接受左操作数作为参数的运算符?

【问题讨论】:

  • 您的意思是value 不会因为您忘记通过引用传递value 而改变吗?
  • 另外,myClass myobject(); 是一个名为 myobject 的函数,不带参数并返回 myClass。查看最令人头疼的解析。

标签: c++ parameters operator-overloading operands


【解决方案1】:

正确的原型如下:

double& operator+=(double& value, const myClass& obj)

【讨论】:

  • 有关赋值运算符的内部和外部类重载的完整列表,请参阅this
  • @crayzeewulf 我的回答符合您建议的链接。
  • 是的,您的回答完全正确并且符合该链接。很抱歉有任何混淆;我并不是说我的评论是对您的答案的更正,而是为了 OP 的补充。如果我(他们)再次遇到这个问题,部分也是为将来我自己(或其他人)查找完整列表的注释。 :D
猜你喜欢
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多