即如果在类定义中我重载了 operator+
或 operator=
这对 operator+=
有什么影响吗?反之亦然。
或者除非另有定义,否则这些运算符是否完全独立?
最佳答案
不,这些运营商是完全独立的。
您当然可以使用其他实现一个,但默认情况下它们是独立的。
struct X
{
X& operator = (const X&);
X operator + (const X&) const;
//X& operator += (const X& other)
// { operator=(operator+(other)); return *this; }
};
X x, y;
x += y; //doesn't compile unless you uncomment that line
关于c++ - 算术/赋值运算符和复合赋值运算符是否在C++中独立定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14458772/