1. && 和 ||
短路求值法:当&&左边表达式的值为假或者||左边表达式的值为真时,右边的表达式不被执行。
所以不要重载&& 和 ||,因为重载后函数调用时,所有参数都会被计算,并且无法确定参数计算的顺序。
2. 逗号表达式
先计算左边的表达式,再计算右边的,整个表达式的值是右边的计算结果。
因为无法确定参数计算的顺序,所以不要重载逗号表达式。
3. 不能重载的操作符
. 成员选择 object.member
.* 指向成员选择 object.*pointer_to_member
:: 域操作符 namespace::member
?: 条件表达式 expr ? expr1 : expr2
4. 每个重载的operator必须要有一个用户定义类型的参数。