如果能作為左值則返回引用,例如a+b不能作為左值,a=b可作為左值,a++不能作為左值,其返回乙個值,是常量,++a可作為左指,返回a這個變數
2.當無法修改左運算元的類時,使用全域性變數進行過載,如《和》,因為無法修改ostream和istream,只能用友元函式進行過載,若用成員函式,成員變數會作為左值,而在cout中,成員變數只能作為右值,發生衝突
3.=,,(),->只能用成員函式進行過載,在對類物件使用這幾個操作符時,系統會呼叫成員函式中的過載操作符,如沒有,則預設呼叫原先已經過載過的操作符,但當這幾個操作符被宣告為友元函式時,c++認為類中沒有它們的過載,所以會去呼叫預設的過載,但又發現全域性函式中的過載型別與其匹配,又要去呼叫這幾個友元函式,所以會產生矛盾,c++是不允許出線這種情況的。
4.c++中通過乙個佔位引數來區分前置運算和後置運算,後置運算預設是有佔位引數的那乙個,前置是沒有佔位引數的那乙個
5.不要過載&& ,||,會違背短路原則,如&&的第乙個引數已經是零,但還是會執行後乙個引數
6.友員函式過載運算子常用於運算子的左右運算元型別不同的情況
7.操作符過載是c++的強大特性之一
操作符過載的本質是通過函式擴充套件操作符的語義
operator關鍵字是操作符過載的關鍵
friend關鍵字可以對函式或類開發訪問許可權
操作符過載遵循函式過載的規則
操作符過載可以直接使用類的成員函式實現
=, , ()和->操作符只能通過成員函式進行過載
++操作符通過乙個int引數進行前置與後置的過載
c++中不要過載&&和||操作符
C 基礎語法學習
基本用語區分 解決方案和專案 解決一類問題的方案。比如要建一套房子是不是要有一套解決方案,那是不是要把該方案分解成幾個小專案,如設計,裝修,水電安裝,材料運輸等專案 c 和.net net 是一種平台一種技術,裡面包含著乙個非常大的 庫 可以模擬成 jvm c 是一種語言,我們可以使用c 去呼叫.n...
基礎語法學習
public class hello 類名,變數名,方法名 關鍵字 以 a z a z 開頭 整數型別 byte short int long l 浮點型別 float f double 字元型別 char boolean型別 true 或 false 引用資料型別 類,介面,陣列 二進位制 0b ...
NumPy入門基礎語法學習4
陣列拼接和 所有的操作都是針對單一陣列的,但有時也需要將多個陣列合併為 乙個,或將乙個陣列 成多個。接下來將詳細介紹這些操作。陣列的拼接 拼接或連線 numpy 中的兩個陣列主要由 np.concatenate np.vstack 和 np.hstack 例程實 現。np.concatenate 將...