1. 一般来说,重载了算数操作符(以下称"独身形式"),那么也就要重载复合赋值操作符(以下称"复合形式").要确保操作符的复合形式例如(operator+=)和独身形式(例如operator+)行为相一致,基于前者实现后者是一个好方法.例如:
class Rational{ public: Rational operator+=(const Rational&); ... } Rational operator+(const T&lhs,const T&rhs){ return T(lhs)+=rhs; }