1.與iostream相容的輸入輸出運算子必須是普通的非成員函式;下標運算子必須是成員函式
2.lambda表示式被編譯器翻譯成乙個未命名類的未命名物件,在這個類中含有乙個過載的函式呼叫運算子;lambda表示式通過引用捕獲變數時,將由程式負責確保lambda執行時引用的物件確實存在,因此編譯器可以直接使用而無需將其儲存為資料成員;相反,通過值捕獲的變數需要,且要建立對應的建構函式;function類能夠將相同呼叫形式的不用可呼叫物件型別統一起來
3.型別轉換運算子將乙個類型別的值轉換成其他型別;型別轉換函式必須是成員函式,不能宣告返回型別,形參列表必須為空
explicit可以宣告顯示的型別轉換運算子,這時我們必須通過顯示的型別轉換(static_cast)才可以,有個例外是當表示式被用作條件時。
C primer閱讀之過載運算與型別轉換
第14章 過載運算與型別轉換 1.當乙個過載的運算子時成員函式時,this繫結到左側運算物件,成員運算子函式顯式地參數量比運算物件地數量少乙個。2.我們把運算子定義為成員函式時,它地左側運算物件必須是所屬類地物件。3.具有對稱性的運算子,一般定義為普通的非成員函式。比如算術和關係運算子。4.輸入輸出...
過載運算與型別轉換
1.基本概念 名字由關鍵字operator和其後要定義的運算符號共同組成。對於乙個運算子來說,它或者是類的成員,或者至少含有乙個類型別的引數。通常情況下,不應該過載逗號 取位址 邏輯與和邏輯或運算子。2.當我們定義過載的運算子時,必須首先決定是將其宣告為類的成員函式還是宣告為乙個普通的非成員函式。一...
類與物件 C 過載運算子
class person 呼叫形式 person p3 p1.operator p2 或者 p3 p1 p2 person operator person p1,person p2 intmain 一般情況下,我們把算術運算子定義成非成員函式,因為我們不需要改變運算物件的狀態,所以形參都是常量的引用...