运算符重载
1.定义
运算符重载是通过创建运算符重载函数实现的。运算符重载函数来实现的。运算符重载函数可以是类外定义的普通函数,也可以是类的成员函数或友元函数。
第一种方式
1 Complex operator+(Complex om1,Complex om2){ 2 Complex temp; 3 temp.real = om1.real + om2.real; 4 temp.imag = om1.imag + om2.imag; 5 return temp; 6 } 7 8 //然后可以调用语句 9 total = com1 + com2;
1 total = operator+(com1,com2);
上面两种方式均可。
2.注意事项
(1)不能重载的运算符
. 成员运算符
.* 成员指针访问运算符
:: 作用域运算符
sizeof 长度运算符
?: 条件运算符
(2)c++虽然允许对已有的运算符进行重载,但是不允许用户定义新的运算符。
特别的, ** 不是c++运算符,所以不允许重载
(3)重载最好不要改变语义,操作对象的个数,运算符的优先级
(4)运算符重载函数的参数至少应有一个是类对象(或类对象的引用)。参数不可以全部是c++标准类型。
(5)运算符重载函数可以是普通函数,也可以是类的成员函数,还可以是类的友元函数。
(6)一般而言,用于类对象的运算符必须重载,但是赋值运算符“=”例外,不必用户进行重载。
3.友元运算符重载函数