《深度探索C 物件模型》讀書筆記1

2021-06-28 18:31:58 字數 416 閱讀 1740

建構函式

1,在合成的預設建構函式中,只有成員物件,和基類子物件會被初始化,其他非靜態成員變數都不會被初始化。

2,對於乙個class沒有乙個使用者定義的建構函式,那麼將會有預設的建構函式被隱式的宣告出來,

有四種情況會造成編譯器會對乙個沒有沒有定義建構函式的類,自動合成乙個勾走函式

1,帶有預設建構函式的成員物件

2,帶有預設建構函式的基類

3,帶有乙個虛函式的類

4,帶有乙個虛基類的類

拷貝建構函式

有三種情況會以乙個物件內容作為另乙個物件的初值,

1,對乙個物件進行顯示初始化操作

class x {};

x x;

x xx = x;

2,當乙個物件被當作乙個函式交給某個函式

3,當函式傳回乙個物件

《深度探索C 物件模型》讀書筆記(5)

純虛函式 在設計抽象基類時,需要注意以下幾點 1 不要將destructor宣告為pure virtual function 如果將destructor宣告為pure virtual function,則設計者一定得定義它。因為每乙個derived class destructor會被編譯器加以擴充...

《深度探索C 物件模型》讀書筆記(6)

物件的構造和解構 一般而言,我們會把object盡可能放置在使用它的那個程式區段附近,這樣做可以節省不必要的物件產生操作和銷毀操作。全域性物件 全域性物件的靜態初始化策略包括以下幾個步驟 1 為每乙個需要靜態初始化的物件產生乙個 sti 函式,內含必要的constructor呼叫操作或inline ...

讀書筆記 《深度探索c 物件模型》 (3)

第四章 function語意學 4.2 虛擬成員函式 a 單一繼承下的virtual function 乙個class只會有乙個virtual table 這個class自己定義的virtual function,它override了乙個可能存在的base class virtual functio...