c++ 重载运算符规则

1:不允许用户自定义新的运算符,只能对已有的运算符进行重载

2:不能重载  . (成员访问运算符) *(指针)  :: (域运算符) sizeof(长度运算符)  ? :

3:重载不能改变操作数的个数。

4:不能改变优先级别

5:不可改变运算符的结合性

6:重载运算符的函数不可以有默认的参数。

7:重载运算符必须和用户自定义的类型对象一起使用,其参数至少有一个类对象,也就是说,参数不能全部是标准类型

int operator +(int a,int b) {return (a-b)} 这样是不对的。

8:用于类对象的运算符一般必须重载,但是有两个例外, = 和 &  不需要重载。

9:理论上说,可以将一个运算符重载为执行任意的操作。

10:对运算符的重载有两种方式:1把重载函数作为类的成员函数 2 运算符的重载函数可以不是类的成员函数,但是可以用友元函数声明。

原文地址:https://www.cnblogs.com/coversky/p/7840915.html