Effective C 讀書筆記1

2021-09-30 07:28:23 字數 957 閱讀 3685

tmp  模板元程式設計

0.explicit建構函式比non-explicit建構函式好。

1.可以用const 來代替#define 定義乙個常量。

#define沒有作用域,也沒有封裝性。

但enum不可以取位址,而const 常量能取位址。因此指標或引用不能指向enum常量。

#define定義巨集時,可以用template inline函式代替。

#ifdef/#ifndef 很重要。

const vector::iterator pos;    //類似t* const 即指向不變

vector::const_iterator pos;  //類似const t* 即指向的元素不變。

函式返回值後加const 為了避免意外發生。

成員函式如果常量性不同就可被過載。

編譯器遵循bitwise constness準則。如果想要實現logical constness,則用mutable改變const值

bitwise constness:只要成員函式宣告為const,則類中任何乙個成員都不能變。

logical constness:對於客戶來說不變即可。

當過載成員函式(只有const區別),則非const呼叫const函式為好,中間可進行強制轉換。

在寫函式時要考慮const。

面對成員變數為const或reference時,他們一定要初始化列表,而不是賦值。

建構函式用初始化列表初始化。

當建構函式的初始化和賦值效率差不多時,則建立private函式存放共同的部分,在多個建構函式中呼叫。

當兩個類在不同編譯單元中,當乙個類要用到另乙個類物件時,不知道初始化順序,所以為了確保順序,必須定義乙個函式

當變為下面時,

/*a& a()

*/情況好轉。

這就是傳說的singleton模式。

改進版

Effective C 讀書筆記1

條款1 視c 為乙個語言聯邦 今天的c 已經是個多重范型程式語言,乙個支援過程形式 物件導向形式 函式形式 泛型形式 元程式設計形式的語言。為了理解c 必須認識其主要的次語言,總共4個 1.c2.object oriented c 3.template c 4.stl 條款2 盡量以const,en...

Effective C 讀書筆記 1

1.定義式是編譯器對此物件撥發記憶體的地點。2.explicit宣告的建構函式可被用於禁止編譯器執行非預期的型別轉換。注 對於單個引數的建構函式定義了從該形參型別到該型別的乙個 轉換。explicit只對建構函式起作用,用來抑制隱式轉換。class a int function a a 當呼叫 fu...

Effective C 讀書筆記1

tmp 模板元程式設計 0.explicit建構函式比non explicit建構函式好。1.可以用const 來代替 define 定義乙個常量。define沒有作用域,也沒有封裝性。class a const int a num num的定義。在宣告式中已經獲初值,所以無需在定義式給初值。當在類...