如果我有像虛擬繼承
class Base1 {};
class Base2 {};
class Derived : public Base1, public Base2 {};
然後構造函數調用對製作的派生類對象順序
Base1
Base2
即他們的順序出現在
class Derived : public Base1, public Base2 {};
但如果我將其更改爲 類Derived:public Base1,virtual public Base2 {}; 然後構造函數調用的順序變爲
Base2
Base1
我無法理解爲什麼會是這樣?
另一個簡單的疑問: 什麼是虛擬繼承Base1的含義和目的。
11個月你在SO上,你仍然無法正確格式化你的帖子? – BlackBear 2012-04-24 12:53:51
一些幫助http://gotw.ca/gotw/080.htm – DumbCoder 2012-04-24 12:55:29
我假設你有一個錯字,因爲你聲明'Base1'和'Base2',然後使用'Base'和'Base1'。 – Cornstalks 2012-04-24 12:55:48