1. 程式人生 > 其它 >Essential C++ 讀書筆記 Ch4

Essential C++ 讀書筆記 Ch4

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。