C++運(yùn)算符重載的規(guī)則主要包括以下幾點(diǎn):
++
、--
、+
、-
、~
、!
等都是一元運(yùn)算符,它們的重載函數(shù)只能接受一個(gè)參數(shù)。+
、-
、*
、/
、%
等都是二元運(yùn)算符,它們的重載函數(shù)需要接受兩個(gè)參數(shù)。+
運(yùn)算符,那么重載后的+
運(yùn)算符仍然具有左結(jié)合的優(yōu)先級(jí)。+
運(yùn)算符,我們可以重載它以返回一個(gè)新的對(duì)象,該對(duì)象表示兩個(gè)操作數(shù)的和。+
運(yùn)算符重載為返回一個(gè)指針,因?yàn)檫@樣會(huì)改變+
運(yùn)算符的原有含義,導(dǎo)致代碼的可讀性和可維護(hù)性降低。需要注意的是,雖然我們可以重載很多運(yùn)算符,但是并不是所有的運(yùn)算符都可以被重載。例如,C++中的sizeof
、const
、volatile
等運(yùn)算符就不能被重載。此外,我們也不能重載C++中的內(nèi)置類型轉(zhuǎn)換運(yùn)算符,如static_cast
、dynamic_cast
、const_cast
和reinterpret_cast
等。