运算符重载作为 类的成员函数 和 类外函数 的区别
运算符重载在类的内外,取决于操作数所处的位置
下面这种情况可重载 operator+ 为成员函数或者类外的函数:
c = c + 1.2; // 等价 c = c.operator+(1.2) 或者 c = operator+(c, 1.2);
这种情况就只能重载为类外的函数:
c = 1.2 + c; // 等价 c = operator+(1.2, c);
小trick: 使用友元,直接调用类内已经写好的 operator+
!注:运算符重载在类外,一般要声明为类的友元,因为有可能牵扯到访问类的私有成员。