一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

虛繼承和多重繼承

 酒一壺 2010-03-17
道經(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)樵谟?jì)算機(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ǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产日韩综合一区在线观看| 成人区人妻精品一区二区三区| 日本av一区二区不卡| 99久久精品久久免费| 中文字幕一区二区熟女| 国产丝袜女优一区二区三区| 中文字幕不卡欧美在线| 亚洲中文字幕在线观看黑人| 99热中文字幕在线精品| 国产一区欧美午夜福利| av在线免费播放一区二区| 欧美丰满大屁股一区二区三区| 黑色丝袜脚足国产一区二区| 久久热这里只有精品视频| 国产亚洲精品久久99| 日本人妻精品中文字幕不卡乱码| 老司机激情五月天在线不卡| 久久精品福利在线观看| 中文字幕日韩无套内射| 日本午夜一本久久久综合| 国产精品自拍杆香蕉视频| 国产一区二区三区草莓av| 精品国产91亚洲一区二区三区 | 亚洲最新一区二区三区| 久热这里只有精品九九| 午夜精品福利视频观看| 日韩人妻一区二区欧美| 日韩精品一级片免费看| 亚洲国产一级片在线观看| 91人人妻人人爽人人狠狠| 东北女人的逼操的舒服吗| 日韩人妻毛片中文字幕| 亚洲av秘片一区二区三区| 欧美黄色黑人一区二区| 日韩亚洲精品国产第二页| 国产在线成人免费高清观看av| 国产精品亚洲一级av第二区| 亚洲精品偷拍视频免费观看| 国产又大又硬又粗又黄| 欧美综合色婷婷欧美激情| 国产又长又粗又爽免费视频|