我正在阅读《C++ Primer》的重载运算符章节,作者给出了一个例子:
// member binary operator: left-hand operand bound to implicit this pointer
Sales_item& Sales_item::operator+=(const Sales_item&);
// nonmember binary operator: must declare a parameter for each operand
Sales_item operator+(const Sales_item&, const Sales_item&);
接下来,作者解释道:
这种区别与应用于算术类型时这些运算符的返回类型相匹配:加法产生一个右值,而复合赋值则返回左操作数的引用。
我不太确定 "复合赋值则返回左操作数的引用
" 是什么意思。有人能详细解释一下吗?
a = b
返回a
,所以c = a = b
计算为c = (a = b)
或a = b
然后c = a
都在一个语句中。 - chris