筆試,面試中常考的C++虛擬繼承的知識點面試
第一種狀況: 第二種狀況: 第三種狀況 第四種狀況:
class a class a class a class a
{ { { {
virtual void func(); virtual void func(); virtual void func(); virtual void func();
}; }; char x; char x;
class b:public virtual a class b :public a }; };
{ { class b:public virtual a class b:public a
virtual void foo(); virtual void foo(); { {
}; }; virtual void foo(); virtual void foo();
}; };spa
若是對這四種狀況分別求sizeof(a), sizeof(b)。結果是什麼樣的呢?下面是輸出結果:(在vc6.0中運行)
第一種:4,12
第二種:4,4
第三種:8,16
第四種:8,8繼承