10.1.1

//对于上面的运算符重载函数operator+还可以写的更简练:
Complex Complex::operator+(Complex &c2)
{return Complex(real+c2.real,imag+c2.imag);}
//函数重载运算符的规则
//(1)c++不允许用户自己定义新的运算符,只能对c++已有的运算符进行重载.
//(2)只有五种运算符不被允许重载分别为 . .* :: sizeof ?:
//(3)重载不能改变运算符运算对象(即操作数)的个数 不能改变运算符的优先级别 不能改变运算符的结合性
//(4)重载运算符的函数不能带有默认的参数。。
//(5)重载运算符和用户自定义类型的对象一起使用时,其参数至少应有一个是 类对象(或类对象的引用)。参数不能全是c++的标准类型
//(6)用于类对象的运算符以一般必须重载,但有两个例外 = 和 & 不必重载
//(7)应当使重载运算符的功能类似于该运算符作用于标准类型数据时所实现的功能
//(8)运算重载函数可以是类的成员函数,也可以是类的友元函数,还可以是非类的成员函数和普通函数

原文地址:https://www.cnblogs.com/sxy201658506207/p/7586431.html