Effective C 讀書筆記 1

2021-06-19 17:33:49 字數 556 閱讀 6074

1.定義式是編譯器對此物件撥發記憶體的地點。

2.explicit宣告的建構函式可被用於禁止編譯器執行非預期的型別轉換。

注:對於單個引數的建構函式定義了從該形參型別到該型別的乙個**轉換。explicit只對建構函式起作用,用來抑制隱式轉換。

class   a   ;   

int   function(a   a);   

當呼叫   function(2)   的時候,2會隱式轉換為a型別。這種情況常常不是程式設計師想要的結果,所以,要避免之,就可以這樣寫:   

class   a   ;   

int   function(a   a);   

這樣,當呼叫   function(2)   的時候,編譯器會給出錯誤資訊(除非   function   有個以   int   為引數的過載形式),這就避免了在程式設計師毫不知情的情況下出現錯誤。

3.copy建構函式和copy賦值操作符的區別是當有新物件被定義時必會呼叫copy建構函式,而沒有新物件產生時會呼叫copy賦值操作符。

4.當函式引數為值傳遞的型別時呼叫的是該型別的copy建構函式。

Effective C 讀書筆記1

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

Effective C 讀書筆記1

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

Effective C 讀書筆記1

tmp 模板元程式設計 0.explicit建構函式比non explicit建構函式好。1.可以用const 來代替 define 定義乙個常量。define沒有作用域,也沒有封裝性。但enum不可以取位址,而const 常量能取位址。因此指標或引用不能指向enum常量。define定義巨集時,可...