虛基類的初始化

2021-07-31 11:28:10 字數 445 閱讀 9839

使用虛基類時,虛基類時被共享的,也就是在繼承體系中無論被繼承多少次,物件記憶體模型中均只會出現乙個虛基類的子物件,即使共享虛基類。但是必須要有乙個類來完成基類的初始化,同時還不能夠重複進行初始化。c++標準中選擇在每一次繼承子類中都必須書寫初始化語句,但是虛基類的初始化是由最後的子類完成,其他的初始化語句都不會呼叫。

class animal

animal(int age)

int age;

};//每乙個繼承子類中,都必須寫初始化語句

class horse:virtual public animal

//不呼叫

};class donkey:virtual public animal

//不呼叫

};class mule:public horse,public donkey

//呼叫

};void test()

虛擬基類的初始化

無論虛擬基類出現在繼承層次中的哪個位置上,它們都是在非虛擬基類之前被構造 虛擬基類的初始化成了最末層繼承類的責 namespace ex18 15 base string base const base protected string name class derived1 virtual pub...

Python小技巧之 基類初始化

class base object def init self print base init class derived base def init self print derived init super derived,self init obj derived derived init b...

類的初始化

類的初始化通產有3種型別 使用初始化列表,在建構函式體中賦值,以及使用預設建構函式。先說前兩種 初始化列表與在建構函式體中賦值的區別在 呢?主要有兩點 第一,有的成員不能使用函式體中的 初始化。這其實就是初始化與賦值的區別 比如比如const 成員,引用型別,以及沒有定義預設建構函式的類,它們都必須...