青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

春暖花開
雪化了,花開了,春天來了
posts - 149,comments - 125,trackbacks - 0

有這么一個(gè)關(guān)于虛函數(shù)和虛繼承的問題,如下:
class A
{
    char k[3];
public:
    virtual void aa();
};

class B: public virtual A
{
    char j[3];
public:
    virtual void bb();
};

class C: public virtual B
{
    char i[3];
public:
   virtual void cc();
};
請問sizeof(A), sizeof(B), sizeof(C)分別為多少?

對于A, 我們很清楚的知道,其大小為8。
對于B,考慮到虛繼承和自身的虛函數(shù),我們也可以算出來起大小為8+8+4 = 20
對于C,其大小為20+8+4 = 32。
其中 4為虛繼承所占用的指針。

這個(gè)看上去沒有什么問題。但是當(dāng)我把虛繼承去掉以后,這里卻有了一些變化?
首先,我猜想了一下,A是8,B是16,C是24。
可惜結(jié)果和我想的不一樣,答案是8, 12, 16。很有規(guī)律的一個(gè)數(shù)字。
從A到B,只增加了4。什么原因呢?

http://www.diybl.com/course/3_program/c++/cppjs/2007927/74925.html這里介紹了一些

The existence of virtual function(s)

Existence of virtual function(s) will add 4 bytes of virtual table pointer in the class, which will be added to size of class. Again, in this case, if the base class of the class already has virtual function(s) either directly or through its base class, then this additional virtual function won't add anything to the size of the class. Virtual table pointer will be common across the class hierarchy. That is

class Base {

public:

 ...        

virtual void SomeFunction(...);

private:  

int iAMem

};

class Derived : public Base

{

 ...       

 virtual void SomeOtherFunction(...);

private:      

int iBMem

};

In the example above, sizeof(Base) will be 8 bytes--that is sizeof(int iAMem) + sizeof(vptr). sizeof(Derived) will be 12 bytes, that is sizeof(int iBMem) + sizeof(Derived). Notice that the existence of virtual functions in class Derived won't add anything more. Now Derived will set the vptr to its own virtual function table.


派生類和基類擁有相同的虛函數(shù)表。

但似乎虛繼承的時(shí)候,又?jǐn)P棄了這一做法。

所以兩個(gè)是有所區(qū)別的。

posted on 2009-10-07 22:43 Sandy 閱讀(1974) 評論(2)  編輯 收藏 引用 所屬分類: c++學(xué)習(xí)

FeedBack:
# re: 虛函數(shù)與虛繼承的思考[未登錄]
2009-10-07 23:23 | vincent
orz..您一定看了程序員面試寶典這本書  回復(fù)  更多評論
  
# re: 虛函數(shù)與虛繼承的思考
2010-06-18 09:31 | 小時(shí)候可靚了
虛繼承是個(gè)很神奇的東西,貌似不同的編譯器的實(shí)現(xiàn)都有區(qū)別。但非虛繼承一般都差不多。。 子類、父類共享虛表,子類實(shí)現(xiàn)了的虛函數(shù),就重填到虛表中,沒有的就不填,這樣當(dāng)我們通過父類調(diào)用的時(shí)候,自然就調(diào)用到了。虛繼承則有點(diǎn)麻煩。。。  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品成人欧美大片古装| 亚洲美女黄色片| 午夜精品久久久久久| 国产日韩精品一区二区浪潮av| 亚洲一区二区影院| 亚洲专区免费| 黄色资源网久久资源365| 久久久综合香蕉尹人综合网| 久久青草久久| 在线亚洲欧美| 亚洲综合成人在线| 在线成人性视频| 亚洲国产综合视频在线观看| 欧美国产视频日韩| 午夜亚洲激情| 久久综合伊人77777麻豆| 夜夜嗨一区二区三区| 亚洲欧美日韩在线不卡| 在线观看日韩一区| 日韩天天综合| 黄色小说综合网站| 亚洲精品日韩激情在线电影 | 中文精品一区二区三区 | 久久影院午夜片一区| 99视频日韩| 久久er精品视频| 一本久久知道综合久久| 欧美在线看片a免费观看| 亚洲精品免费电影| 欧美一区二区三区啪啪| 一区二区三区av| 久久激五月天综合精品| 亚洲性图久久| 久久综合久久88| 欧美一级久久| 欧美国产综合视频| 久久婷婷国产麻豆91天堂| 欧美日韩你懂的| 榴莲视频成人在线观看| 国产欧美亚洲精品| 一区二区三区国产在线| 亚洲欧洲精品一区二区| 久久激情视频| 欧美一区二区大片| 国产精品va| 亚洲精品精选| 亚洲国产精品成人精品| 久久精品国产清高在天天线| 亚洲自拍16p| 欧美日韩成人在线观看| 亚洲国产高潮在线观看| 在线高清一区| 久久久水蜜桃av免费网站| 久久精品道一区二区三区| 国产精品高清免费在线观看| 亚洲三级视频| 亚洲乱码日产精品bd| 美女在线一区二区| 免费一级欧美片在线播放| 韩国一区电影| 久久久久高清| 欧美波霸影院| 亚洲国产另类精品专区| 久久综合伊人77777蜜臀| 美女精品在线| 亚洲国产精品久久| 欧美成年人网站| 91久久精品一区| 一区二区电影免费观看| 欧美日韩一区二区三| 一本色道久久综合亚洲精品不| 亚洲私人黄色宅男| 欧美新色视频| 午夜在线精品偷拍| 久久综合色播五月| 亚洲欧洲三级| 欧美日本在线一区| 亚洲一区二区免费看| 欧美一区二区三区在线视频| 国产一区二区精品久久91| 欧美在线观看一区二区三区| 蜜臀91精品一区二区三区| 亚洲大片在线| 欧美女主播在线| 亚洲午夜精品一区二区| 久久成人国产精品| 亚洲国产欧美一区| 欧美日韩一区二区在线观看| 亚洲永久免费| 欧美成人一区在线| 一区二区欧美日韩| 国产午夜亚洲精品不卡| 蜜桃视频一区| 亚洲一区二区在| 乱人伦精品视频在线观看| 99精品久久| 国产精品自拍一区| 暖暖成人免费视频| 亚洲一区二区欧美| 欧美国产综合| 欧美一级淫片aaaaaaa视频| 怡红院精品视频| 欧美日韩系列| 久久亚洲综合网| 宅男噜噜噜66国产日韩在线观看| 久久久人成影片一区二区三区观看| 亚洲国产精品传媒在线观看| 国产精品久久久久久超碰| 久久夜色撩人精品| 亚洲综合精品一区二区| 亚洲高清视频一区二区| 午夜精品福利一区二区三区av| 在线免费不卡视频| 国产精品视频久久久| 欧美高清视频www夜色资源网| 午夜在线精品偷拍| 一本色道久久综合亚洲精品高清| 欧美18av| 久久精品亚洲一区| 亚洲欧美色一区| 日韩午夜激情av| 尤物网精品视频| 国产欧美日韩综合一区在线观看 | 先锋影音网一区二区| 亚洲精品永久免费| 亚洲二区免费| 欧美+亚洲+精品+三区| 久久日韩精品| 久久精品国产欧美亚洲人人爽| 亚洲中字黄色| 亚洲视频免费| 99re这里只有精品6| 亚洲国产欧美一区二区三区久久| 国产一区自拍视频| 国产亚洲精品自拍| 国产一区二区久久精品| 国产日韩欧美精品| 国产麻豆精品久久一二三| 国产精品v欧美精品v日韩精品| 欧美日韩视频| 欧美日韩精品伦理作品在线免费观看| 久久综合中文色婷婷| 麻豆9191精品国产| 暖暖成人免费视频| 欧美久久久久久久| 欧美三日本三级三级在线播放| 欧美精品三级| 欧美午夜免费电影| 国产精品久久毛片a| 国产精品视频专区| 国产欧美日韩视频| 韩国三级电影一区二区| 在线电影一区| 99日韩精品| 亚洲一区二区三区精品在线观看| 亚洲欧美国产制服动漫| 久久福利电影| 欧美mv日韩mv国产网站app| 欧美激情视频在线播放| 99re66热这里只有精品3直播| 在线中文字幕日韩| 久久精品免费播放| 欧美护士18xxxxhd| 国产精品欧美日韩一区| 狠狠爱综合网| 亚洲最新视频在线播放| 亚洲欧美日韩综合国产aⅴ| 久久先锋资源| 亚洲国产精品专区久久| 亚洲午夜精品福利| 久久精品二区| 欧美久久久久免费| 国产日韩精品一区观看| 最近看过的日韩成人| 亚洲一二三区在线| 老牛影视一区二区三区| 亚洲日韩欧美视频| 久久激情中文| 欧美午夜精品一区| 1024欧美极品| 欧美一区二区三区四区在线观看| 免费影视亚洲| 亚洲一区在线免费| 欧美成人官网二区| 国产色综合久久| 在线综合+亚洲+欧美中文字幕| 欧美怡红院视频一区二区三区| 亚洲大片免费看| 亚洲欧美中文日韩在线| 欧美精品精品一区| 黑人一区二区| 欧美一级久久| 日韩视频免费在线| 免费不卡视频| 国产一区二区三区免费观看| 亚洲综合欧美日韩| 亚洲激情网站免费观看| 久久久久久黄| 国产亚洲精品久久久久婷婷瑜伽 | 国产亚洲欧美中文|