▶5.5.1 运算符重载概述
运算符重载要求运算符本身是C++语言中预定义的运算符,但可以允许其产生和预定义功能不同的含义,最主要的体现在数据类型的不同。
当然,在C++语言中,不是所有系统预定义运算符都可以重载,.、?:、::、.*、sizeof这几个运算符是不能重载的。
而可以重载的运算符有:+、-、*、/、%、^、&、∣、~、!、=、<、>、+=、-=、*=、/=、%=、^=、&=、∣=、<<、>>、>>=、<<=、==、!=、<=、>=、&&、‖、++、--、->*、‘、->、[]、()、new、delete。
需要强调的是,重载运算符不能改变运算符的基本功能,例如不能将“+”(加法运算)重载为“-”(减法运算);也不能改变运算符本身的优先级、结合性和操作数的个数;只是将运算符的操作数类型扩充到类类型。
因为C++编程的基本单位是函数,所以运算符重载用函数来实现。