Effective C 讀書筆記

2021-10-24 08:30:36 字數 889 閱讀 2010

永遠在使用物件之前確保其已經初始化。

在release版本的時候一定要在建構函式裡面進行初始化,否則可能產生很多未知行為導致程式崩潰。

使用 member initialization list 初始化成員變數,更加高效。

class

testclass

private

:int _numa;

int _numb;

};

初始化順序

class

base

;class

basechijld

:public base

;//先初始化 base 再初始化 basechijld

class

test

;

在c++中,當derived class 物件經由乙個base class指標被刪除的時候,而該base class帶著乙個non-virtual析構函式,其結果未有定義,實際執行時通常發生的是物件的derived成分沒被銷毀。

如果乙個class帶有任何的virtual函式,它就應該擁有乙個virtual析構函式。

classes的設計目的如果不是作為base classes使用,或不是為了具備多型性,就不應該宣告virtual析構函式

為了實現連鎖賦值,賦值操作符必須返回乙個reference指向操作符的左側實參。這是為classes實現賦值操作符時應該遵循的協議。也包括其他的操作符

class

test

test &

operator+=

(const test &t)

};

《effective C 》讀書筆記

1,c 關鍵字explicit c 中,乙個引數的 建構函式 或者除了第乙個引數外其餘引數都有預設值的多參建構函式 承擔了兩個角色。1 是個 構造器,2 是個預設且隱含的型別轉換操作符 所以,有時候在我們寫下如 aaa 這樣的 且恰好 的型別正好是aaa單引數構造器的引數型別,這時候 編譯器就自動呼...

Effective C 讀書筆記

一 讓自己習慣c 1 條款01 視c 為聯邦語言 c 的組成可分為四部分 1.c c 仍然以c語言為基礎。區塊 語句 預處理 內建資料型別 陣列 指標等都來自c。2.object oriented c c with classes所訴說的 classes 包括構造和析構 封裝 繼承 多型 virtu...

讀書筆記 Effective C

部分條款過於深奧,部分條款已了然於心,僅記錄當下所識所學 對於常量巨集定義,最好用const代替 define 對於函式巨集定義,最好用inline代替 define include ifdef ifndef仍被需要 內建物件記得手動初始化 使用成員初始列替換賦值操作 以local static替換...