#include
using namespace std;
class a;};
class b:public a;};
class c:public virtual b;};
int main(){cout
b類,普通繼承,乙個整型4b,繼承下來的乙個整型4b,虛指標4b,共12b【b類的虛函式表有aa與bb兩個虛函式位址】
c類,虛函式繼承,乙個整理4b,自己的虛指標4b(指向的虛函式表僅cc乙個函式),然後把b類的12b全繼承乙份,共20b
注意:上面兩個繼承與虛繼承是不一樣的,虛繼承就記住是菱形繼承時用到即可
虛函式 虛繼承
include using namespace std class a class b public a class c public b int main 結果是 4,4,4 為什麼?一,在private,protect,public的實際繼承中,派生類和基類擁有相同的虛函式表。但如果是虛繼承,會...
虛函式,虛繼承
1 空類,空類單繼承,空類多繼承的sizeof include using namespace std class base1 class base2 class derived1 public base1 class derived2 public base1,public base2 int m...
虛繼承 虛函式
1.虛繼承簡單的說就是如果有兩個類都繼承了同乙個基類 a 那麼,如果有第三個類又繼承了這兩個類,第三個類就會出現有 兩個基類 a 的情況,虛繼承就能避免這種情況。從實現 來看 普通繼承 普通繼承 沒有使用虛基類 基類a class a class b public a class c public ...