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

春暖花開
雪化了,花開了,春天來了
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 閱讀(1977) 評論(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>
            最新亚洲视频| 欧美日产在线观看| 欧美涩涩网站| 午夜精品久久久久99热蜜桃导演| 韩日欧美一区二区| 先锋影音国产一区| 在线视频精品一区| 亚洲综合精品| 亚洲黄色一区| 亚洲永久网站| 亚洲美女黄网| 欧美在线视频免费| 日韩性生活视频| 欧美在线免费| 亚洲一区二区三区影院| 久久女同精品一区二区| 欧美一区二区免费观在线| 欧美va亚洲va香蕉在线| 久久精品三级| 国产精品theporn88| 欧美激情一区二区三区| 国产区精品在线观看| 亚洲美女av在线播放| 欧美日本高清视频| 亚洲高清在线视频| 在线视频一区二区| 久久久99爱| 欧美日韩精品免费观看视频完整| 欧美在线一二三四区| 欧美精品一区二区三区久久久竹菊| 久久性天堂网| 国产精品一区二区你懂得| 亚洲日韩成人| 亚洲国内高清视频| 久久国产夜色精品鲁鲁99| 欧美一级免费视频| 欧美午夜精品电影| 亚洲伦理在线观看| 99国产精品99久久久久久粉嫩| 老司机午夜免费精品视频| 久久免费精品视频| 国外成人在线| 久久精品99国产精品日本| 久久久久久**毛片大全| 蜜桃久久av一区| 在线观看亚洲a| 久久久999成人| 在线亚洲一区观看| 欧美精品久久一区| 亚洲精品国产无天堂网2021| 亚洲激情第一页| 免费视频久久| 亚洲高清久久久| 亚洲精品之草原avav久久| 欧美激情久久久| 欧美成人嫩草网站| 亚洲欧洲一区二区天堂久久| 久久网站热最新地址| 欧美fxxxxxx另类| 亚洲人屁股眼子交8| 欧美女同在线视频| 一二三区精品福利视频| 亚洲欧美资源在线| 国产乱肥老妇国产一区二 | 久色婷婷小香蕉久久| 久久人人97超碰国产公开结果| 国内成人精品2018免费看| 久久精品国产亚洲一区二区三区| 久久综合激情| 91久久精品国产| 欧美另类人妖| 一区二区三区毛片| 久久久久久久久久码影片| 伊人久久亚洲影院| 欧美成年视频| 亚洲小视频在线观看| 久久精品亚洲| 亚洲开发第一视频在线播放| 国产精品免费aⅴ片在线观看| 香蕉av福利精品导航| 欧美国产日本高清在线| 亚洲午夜精品网| 国产日韩欧美不卡| 欧美jjzz| 性感少妇一区| 亚洲高清一区二| 性色av一区二区三区| 影音先锋亚洲精品| 国产精品sss| 毛片av中文字幕一区二区| 亚洲九九九在线观看| 久久国产黑丝| 99视频超级精品| 亚洲福利电影| 欧美激情第二页| 日韩视频免费观看| 久久久久久久久久久久久久一区| 亚洲人精品午夜在线观看| 国产精品永久免费观看| 久久久一二三| 亚洲影院一区| 亚洲国产精品综合| 久久精品视频导航| 亚洲在线日韩| 亚洲国产免费看| 国产精品综合久久久| 欧美日本精品| 久久亚洲一区二区| 欧美一进一出视频| 在线一区欧美| 亚洲高清一二三区| 久久综合狠狠综合久久综青草| 午夜精品久久久久久久久久久久| 91久久线看在观草草青青| 国产午夜精品久久久| 国产亚洲激情| 激情一区二区| 国内久久婷婷综合| 欧美理论大片| 久久这里只有精品视频首页| 亚洲视频在线观看| 亚洲欧洲一二三| 欧美高清hd18日本| 久久人人97超碰人人澡爱香蕉| 亚洲免费视频一区二区| 99国产精品99久久久久久粉嫩| 在线观看三级视频欧美| 国产欧美精品国产国产专区| 欧美视频在线看| 欧美日韩国产精品| 欧美激情bt| 欧美极品在线观看| 欧美成人精品一区二区三区| 老色鬼精品视频在线观看播放 | 影音先锋久久精品| 伊伊综合在线| 精品二区视频| 国产在线欧美| 在线亚洲免费| 亚洲伦理在线观看| 亚洲啪啪91| 亚洲国产一区二区三区高清 | 一本一本久久| 一本色道婷婷久久欧美| 这里是久久伊人| 亚洲一区二区三区影院| 亚洲一区二区三区乱码aⅴ| 亚洲无玛一区| 午夜天堂精品久久久久| 欧美在线免费看| 久久久久天天天天| 老司机凹凸av亚洲导航| 欧美大片在线观看| 欧美日韩妖精视频| 国产精品久久久久久久久久久久 | 欧美a级片网站| 亚洲激情在线视频| 一区二区精品在线| 久久久久久久999| 国产精品女同互慰在线看| 欧美国产日韩xxxxx| 最新成人在线| 亚洲精选视频免费看| 妖精视频成人观看www| 亚洲午夜电影网| 欧美一区在线视频| 毛片av中文字幕一区二区| 亚洲国产精品国自产拍av秋霞| 亚洲巨乳在线| 午夜精品av| 乱码第一页成人| 国产精品爱久久久久久久| 韩日视频一区| 中日韩在线视频| 久久精品成人一区二区三区| 亚洲电影第1页| 亚洲淫片在线视频| 蜜臀久久99精品久久久久久9| 欧美日韩在线视频观看| 国精品一区二区三区| 日韩视频免费大全中文字幕| 亚洲欧美精品| 欧美国产视频在线观看| 亚洲一区二区三区四区在线观看| 久久天天综合| 亚洲国产精品久久精品怡红院| 久久久亚洲一区| 欧美怡红院视频一区二区三区| 性高湖久久久久久久久| 夜夜爽www精品| 久久成人av少妇免费| 亚洲国产精品123| 亚洲主播在线播放| 麻豆精品国产91久久久久久| 国产精品毛片大码女人| 亚洲国产专区校园欧美| 欧美亚洲综合网| 日韩亚洲精品视频| 美女爽到呻吟久久久久| 国产婷婷精品|