【发布时间】:2014-02-24 11:02:54
【问题描述】:
正如我在书籍和网络中所读到的,在 C++ 中,我们可以使用这些原型重载“加号”或“减号”运算符(作为 class Money 的成员函数):
const Money operator +(const Money& m2) const;
const Money operator -(const Money& m2) const;
对于赋值运算符:
const Money& operator =(const Money& m2);
为什么在赋值运算符重载中而不是在加号和减号运算符中使用对 Money 对象的引用作为返回值?
【问题讨论】:
-
如果您在
+或-二进制操作中返回一个引用,它应该引用什么?返回引用是没有意义的。该操作必须创建一个新对象。 -
你不希望能够编码 a + b = c;
标签: c++ operators operator-overloading return-by-reference return-by-value