运算符的重载就是给一般的运算符定义一个函数,函数名为operator=,operator+等,参数的个数根据是全局函数还是类中的成员函数而有所区别。
在类中的运算符函数,对于二元运算符,单个的参数是出现在运算符右侧的那一个。
虽然C++语法可以重载几乎所以C中可用的运算符,但有几个小规则需要遵守:
1、不能做无意义的重载,如把'+'重载成减法的含义等
2、不能改变运算符的优先级
3、不能改变运算符的参数个数
下面开始介绍几个常用的重载的运算符:
一元运算符:
+
-
~
&
!
++
--
二元运算符:
+
-
*
/
%
^
&
|
<<
>>
+=
-=
*=
/=
%=
^=
&=
|=
<<=
>>=
==
!=
>
<
>=
<=
&&
||
在这其中需要注意的是++和--运算符,由于有前置和后置的区别,如果是++a,就会调用operator(a),而如果是a++则会调用operator(a,int);利用参数的不同来实现不同的调用。
不能重载的运算符:
.
.*