出于教育目的,我希望以级联方式重载和使用 += 运算符。
class a {
public:
a();
a& operator+= (float f);
private:
float aa;
}
a() {
aa = 0;
}
a& operator+= (float f) {
aa += f;
return *this;
}
a b;
b += 1.0; // Works.
b += 1.0 += 1.0; // Error : Expression must be a modifiable lvalue.
我不明白为什么上面的代码不起作用(除了可能存在的语法错误——我没有尝试编译这段示例代码)。在重载的operator+=方法中返回*this,我希望第二个+= 1.0 调用b对象,是这样吗?
谢谢。
+=
从右向左计算。 - user3072164