C++运算符重载的规则主要包括以下几点:
++
、--
、+
、-
、~
、!
等都是一元运算符,它们的重载函数只能接受一个参数。+
、-
、*
、/
、%
等都是二元运算符,它们的重载函数需要接受两个参数。+
运算符优先级的情况下重载了+
运算符,那么重载后的+
运算符仍然具有左结合的优先级。+
运算符,我们可以重载它以返回一个新的对象,该对象表示两个操作数的和。+
运算符重载为返回一个指针,因为这样会改变+
运算符的原有含义,导致代码的可读性和可维护性降低。需要注意的是,虽然我们可以重载很多运算符,但是并不是所有的运算符都可以被重载。例如,C++中的sizeof
、const
、volatile
等运算符就不能被重载。此外,我们也不能重载C++中的内置类型转换运算符,如static_cast
、dynamic_cast
、const_cast
和reinterpret_cast
等。