/*01_03
note:
1.重載是指一個與以前已經在改做用域內聲明過的函數或者方法具備相同的名稱或者方法可是他們參數列表必須不同。
2.重載決策:當你調用一個重載函數或者重載運算符時,編譯器經過把您所用的參數類型與定義中的參數類型進行對比,決定使用最合適的定義,選擇最合重載函數或重載運算符的過程
3.運算符重載:函數名爲是由關鍵字operator和其後要重載的運算符符號構成,與其餘函數同樣重載運算符有一個返回類型和一個參數列表(如int operator+(int a){....})
.下面是可重載的運算符列表:
雙目算術運算符 + (加),-(減),*(乘),/(除),% (取模)
關係運算符 ==(等於),!= (不等於),< (小於),> (大於>,<=(小於等於),>=(大於等於)
邏輯運算符 ||(邏輯或),&&(邏輯與),!(邏輯非)
單目運算符 + (正),-(負),*(指針),&(取地址)
自增自減運算符 ++(自增),--(自減)
位運算符 | (按位或),& (按位與),~(按位取反),^(按位異或),,<< (左移),>>(右移)
賦值運算符 =, +=, -=, *=, /= , % = , &=, |=, ^=, <<=, >>=
空間申請與釋放 new, delete, new[ ] , delete[]
其餘運算符 ()(函數調用),->(成員訪問),,(逗號),[](下標)
.下面是不可重載的運算符列表:
.:成員訪問運算符
.*, ->*:成員指針訪問運算符
:::域運算符
sizeof:長度運算符
?::條件運算符
#: 預處理符號
.參數數量與該運算符做用的運算的對象數量同樣多,一元就是一個二元就是兩個。對於二元來講左側運算對象傳遞給第一個參數右側傳遞給第二個參數。
4.一元運算符重載
.是成員函數,則它的第一個運算對象綁定到隱式this指針,所以成員運算符函數顯式參數數量比運算符運算對象總數少一個。函數
*/this