C++運算符重載的規則主要包括以下幾點:
++
、--
、+
、-
、~
、!
等都是一元運算符,它們的重載函數只能接受一個參數。+
、-
、*
、/
、%
等都是二元運算符,它們的重載函數需要接受兩個參數。+
運算符優先級的情況下重載了+
運算符,那么重載后的+
運算符仍然具有左結合的優先級。+
運算符,我們可以重載它以返回一個新的對象,該對象表示兩個操作數的和。+
運算符重載為返回一個指針,因為這樣會改變+
運算符的原有含義,導致代碼的可讀性和可維護性降低。需要注意的是,雖然我們可以重載很多運算符,但是并不是所有的運算符都可以被重載。例如,C++中的sizeof
、const
、volatile
等運算符就不能被重載。此外,我們也不能重載C++中的內置類型轉換運算符,如static_cast
、dynamic_cast
、const_cast
和reinterpret_cast
等。