操作符重载需要注意几点。
1、被重载的操作符必须是C++中存在的操作符,你不可能重载一个原本在C++中并不是操作符的操作符;
2、重载操作符函数必须用operator修饰;
3、该函数的形参列表不能为空,因为操作符不可能没有操作数;
4、这个重载函数既然也是个函数,那么你在应用被重载的操作符的时候操作符左边的操作数相当于主调对象,而操作符右侧的操作数则相当于参数;
5、重载的操作符不能用于内置类型,只能用于用户自定义类型;
6、你无法改变操作符的使用形式,比如说模运算符%原本是用于两个操作数,但是你的重载操作符却用于单操作数。重载操作符也无法改变操作符的优先级。
7、你无法创造新操作符;
8、有些操作符是你无法重载的,具体如下:
Sizeof
.
.*
::
?:
Typeid
Const_cast
Dynamic_cast
Reinterpret_cast
Static_cast
等;
9、操作符重载的可以是成员函数也可以是非成员函数,但是以下操作符只能是成员函数来重载。
=、()、[]、->;
成员函数的重载操作符是由用户自定义类型的对象来调用的,但是非成员函数的重载操作符却没有这一限制。