c++(4)

1. 如果能作爲左值則返回引用,例如a+b不能作爲左值,a=b可作爲左值,a++不能作爲左值,其返回一個值,是常量,++a可作爲左指,返回a這個變量

2.當無法修改左操作數的類時,使用全局變量進行重載,如<<和>>,因爲無法修改ostream和istream,只能用友元函數進行重載,若用成員函數,成員變量會作爲左值,而在cout中,成員變量只能作爲右值,發生衝突

3.=,[],(),->只能用成員函數進行重載,在對類對象使用這幾個操作符時,系統會調用成員函數中的重載操作符,如沒有,則默認調用原先已經重載過的操作符,但當這幾個操作符被聲明爲友元函數時,C++認爲類中沒有它們的重載,所以會去調用默認的重載,但又發現全局函數中的重載類型與其匹配,又要去調用這幾個友元函數,所以會產生矛盾,C++是不允許出線這種情況的。

4.C++中通過一個佔位參數來區分前置運算和後置運算,後置運算默認是有佔位參數的那一個,前置是沒有佔位參數的那一個

5.不要重載&& ,||,會違背短路原則,如&&的第一個參數已經是零,但還是會運行後一個參數

6.友員函數重載運算符常用於運算符的左右操作數類型不同的情況

7.操作符重載是C++的強大特性之一
操作符重載的本質是通過函數擴展操作符的語義
operator關鍵字是操作符重載的關鍵
friend關鍵字可以對函數或類開發訪問權限
操作符重載遵循函數重載的規則
操作符重載可以直接使用類的成員函數實現
=, [], ()和->操作符只能通過成員函數進行重載
++操作符通過一個int參數進行前置與後置的重載
C++中不要重載&&和||操作符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章