算术/赋值运算符和复合赋值运算符是在C++中独立定义的

Art*_*rth 0 c++ operator-overloading

即如果在类定义中我超载operator+operator=对此有什么影响operator+=?反之亦然.

或者这些运营商完全独立,除非另有定义?

Luc*_*ore 5

不,这些运营商是完全独立的.

您当然可以使用其他人实现一个,但默认情况下它们是独立的.

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
Run Code Online (Sandbox Code Playgroud)