建構函式
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...