class A
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到陸豐網(wǎng)站設(shè)計(jì)與陸豐網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:做網(wǎng)站、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋陸豐地區(qū)。
{
public:
char a;
virtual void print()
{
cout << "A" << endl;
}
};
class B: public A
{
};
class C : public B
{
void print()
{
cout << "C" << endl;
}
};
int main()
{
cout << sizeof(A) << endl;//8
cout << sizeof(B) << endl;//8
cout << sizeof(C) << endl;//8
system("pause");
return 0;
}
注釋?zhuān)篶har占一個(gè)字節(jié),而print函數(shù)占四個(gè)字節(jié),因?yàn)槭翘摵瘮?shù),里面有虛指針,故大小為四個(gè)字節(jié),
考慮字節(jié)對(duì)齊的話就是8個(gè)字節(jié),而B(niǎo)是繼承A的,所以大小也為8字節(jié),C也是;不妨動(dòng)手試試!
class A
{
public:
char a;
virtual void print()
{
cout << "A" << endl;
}
};
class B : virtual public A
{
};
class C : virtual public B
{
void print()
{
cout << "C" << endl;
}
};
int main()
{
cout << sizeof(A) << endl;//8
cout << sizeof(B) << endl;//12
cout << sizeof(C) << endl;//16
system("pause");
return 0;
}
而若是虛繼承的話,它在當(dāng)前的大小上再加上4字節(jié),關(guān)鍵體現(xiàn)在虛繼承的“虛(virtual)”這個(gè)關(guān)鍵字上,它也含有虛指針?biāo)砸偌由纤淖止?jié)!可以敲代碼試一下。