Essential C++ 讀書筆記 Ch4
阿新 • • 發佈:2021-10-19
4 基於物件的程式設計風格
4.1 實現class
所有member function都必須在class主體內進行宣告。至於是否要同時進行定義,可以自由決定。
class名稱之後的兩個::即所謂class scope resolution運算子(類域作用解析)。
4.2 建構函式和解構函式
member initialization list
是建構函式特有的語法,在開始執行函式體之前就為成員變數賦初始值。
destructor
其名稱有嚴格規定:class名稱加上~字首。它絕不會有返回值,沒有任何引數,絕不能過載。
成員逐一初始化
如果有必要為某class設計copy constructor,那麼也同樣要為他編寫copy assignment operator
4.3 mutable 和 const
沒有一個const reference class引數可以呼叫公開介面的non-const成分
將某變數標識為mutable,意味著宣傳對其做出改變不改變class object的常量性。
4.4 this
this指標系在member function內用來指向其呼叫者(一個物件)。編譯器自動將this指標加到每一個member function的引數列表。
4.5 靜態類成員
static data member用來表示唯一的、可以共享的member
static member function 可以在“與任何物件都毫無瓜葛”的情況下被呼叫。
待完善
4.6 打造 iterator class
4.7 友元
任何class都可以將其他function或class指定為friend,而friend具備了與class member function相同的訪問許可權,可以訪問class的private member。
4.8 實現copy assignment operator
4.9 實現function object
lt(ival)
中,lt可能是函式名稱,可能是函式指標,也可能是一個提供了function call 運算子的function object。