c++ 重载运算符规则
1:不允许用户自定义新的运算符,只能对已有的运算符进行重载。
2:不能重载 . (成员访问运算符) *(指针) :: (域运算符) sizeof(长度运算符) ? :
3:重载不能改变操作数的个数。
4:不能改变优先级别
5:不可改变运算符的结合性
6:重载运算符的函数不可以有默认的参数。
7:重载运算符必须和用户自定义的类型对象一起使用,其参数至少有一个类对象,也就是说,参数不能全部是标准类型。
int operator +(int a,int b) {return (a-b)} 这样是不对的。
8:用于类对象的运算符一般必须重载,但是有两个例外, = 和 & 不需要重载。
9:理论上说,可以将一个运算符重载为执行任意的操作。
10:对运算符的重载有两种方式:1把重载函数作为类的成员函数 2 运算符的重载函数可以不是类的成员函数,但是可以用友元函数声明。