国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
虛繼承和多重繼承
道經(jīng)典題目---虛函數(shù)繼承和虛繼承

 1#include <cstdlib>
 2#include <iostream>
 3#include <memory>
 4
 5using namespace std;
 6class A
 7{
 8      char k[3];
 9      public:
10             virtual void aa(){};
11};
12
13class B : public virtual A
14{
15      char j[3];
16      public:
17             virtual void bb(){};
18};
19
20class C : public virtual B
21{
22      char i[3];
23      public:
24             virtual void cc(){};
25};
26
27int main(int argc, char *argv[])
28{
29    cout<<"sizeof(A):"<<sizeof(A)<<endl;
30    cout<<"sizeof(B):"<<sizeof(B)<<endl;
31    cout<<"sizeof(C):"<<sizeof(C)<<endl;
32    system("PAUSE");
33    return EXIT_SUCCESS;
34}
問題:程序運(yùn)行的結(jié)果?
答案:8,16,24。
解釋:
(1)對于類A,由于有一個虛函數(shù),那么必須得有一個對應(yīng)的虛函數(shù)表來記錄對應(yīng)的函數(shù)入口地址。每個地址需要一個虛指針,指針的大小為4。類中還有一個char k[3],當(dāng)然大小為3。為什么是8呢?因?yàn)樵谟嬎銠C(jī)里,是以4為單位,所以第一條輸出的結(jié)果為8。
(2)對于類B,同類A一樣,自己的大小為8,但是由于虛繼承類A,所以在虛表中要加入一個虛類指針來指向其類A,然后在包含類A的所有成員,sizeof(A)為8,結(jié)果便是16。
(3)對于類C,同類B一樣,自己的大小8,加上sizeof(B),結(jié)果為24。

虛繼承就是為了節(jié)約內(nèi)存的,他是多重繼承中的特有的概念。適用與菱形繼承形式。
虛函數(shù)繼承就是覆蓋。即基類中的虛函數(shù)被派生類中的同名函數(shù)所覆蓋。 是實(shí)現(xiàn)多態(tài)的方法。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C++多重繼承
王升的共享空間: C/C++
【C++基礎(chǔ)之二十一】菱形繼承和虛繼承
虛擬繼承
C++虛基類詳解
常見筆試/面試題目(四)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服