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

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

有這么一個關于虛函數(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為虛繼承所占用的指針。

這個看上去沒有什么問題。但是當我把虛繼承去掉以后,這里卻有了一些變化?
首先,我猜想了一下,A是8,B是16,C是24。
可惜結果和我想的不一樣,答案是8, 12, 16。很有規(guī)律的一個數(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ù)表。

但似乎虛繼承的時候,又擯棄了這一做法。

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

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

FeedBack:
# re: 虛函數(shù)與虛繼承的思考[未登錄]
2009-10-07 23:23 | vincent
orz..您一定看了程序員面試寶典這本書  回復  更多評論
  
# re: 虛函數(shù)與虛繼承的思考
2010-06-18 09:31 | 小時候可靚了
虛繼承是個很神奇的東西,貌似不同的編譯器的實現(xiàn)都有區(qū)別。但非虛繼承一般都差不多。。 子類、父類共享虛表,子類實現(xiàn)了的虛函數(shù),就重填到虛表中,沒有的就不填,這樣當我們通過父類調(diào)用的時候,自然就調(diào)用到了。虛繼承則有點麻煩。。。  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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久久久久久白浆小说| 精品999在线播放| 亚洲欧美清纯在线制服| 99这里只有精品| 免费观看欧美在线视频的网站| 久久国产一二区| 国产精品女人久久久久久| 亚洲欧洲在线免费| 尤物yw午夜国产精品视频明星| 午夜精品久久久久久久久| 国产精品99久久久久久有的能看| 欧美国产国产综合| 亚洲国产精品精华液2区45| 在线免费观看视频一区| 欧美在线播放一区| 久久久久免费视频| 国产小视频国产精品| 新狼窝色av性久久久久久| 香蕉久久国产| 国产精品有限公司| 亚洲欧美日韩国产综合| 久久gogo国模啪啪人体图| 国产精品一区二区欧美| 午夜国产精品视频免费体验区| 欧美一区二区高清| 国产一区二区三区黄视频| 欧美一区二区三区在线观看| 久久久999国产| 国产综合久久| 久久蜜桃av一区精品变态类天堂| 欧美成人dvd在线视频| 亚洲人成在线观看| 欧美人与禽猛交乱配| 在线亚洲一区| 久久精品女人| 亚洲成色www久久网站| 欧美α欧美αv大片| 99精品国产在热久久| 欧美亚洲在线视频| 伊人久久婷婷色综合98网| 免费看黄裸体一级大秀欧美| 亚洲免费播放| 欧美专区中文字幕| 亚洲精华国产欧美| 国产精品sss| 久久久久久久久综合| 亚洲激情视频在线观看| 小处雏高清一区二区三区| 在线电影一区| 欧美视频二区| 久久嫩草精品久久久久| 日韩手机在线导航| 久久精品一二三| 日韩视频在线你懂得| 国产视频在线观看一区二区三区| 两个人的视频www国产精品| 日韩一级裸体免费视频| 久久亚洲春色中文字幕| 日韩一区二区精品| 国产一区二区三区av电影 | 欧美精品福利视频| 亚洲伊人网站| 亚洲福利在线观看| 欧美中文字幕在线观看| 99成人在线| 精品91在线| 国产精品欧美一区喷水| 欧美成人在线免费观看| 午夜精品一区二区三区电影天堂| 亚洲国内在线| 久久久999精品视频| 亚洲免费观看视频| 国产专区欧美专区| 国产精品国产精品| 欧美成人一品| 欧美中文字幕不卡| 亚洲一区网站| 精品成人在线观看| 国产欧美日韩视频| 欧美3dxxxxhd| 久久久久五月天| 午夜精品一区二区三区在线播放| 亚洲精品国产精品国自产观看浪潮| 久久久久久久一区| 欧美在线视屏| 欧美一级片在线播放| 99re8这里有精品热视频免费| 激情欧美丁香| 国色天香一区二区| 国产欧美精品一区二区三区介绍| 欧美日韩日本国产亚洲在线| 欧美成人精品一区二区| 久久天堂精品| 久久艳片www.17c.com| 久久精品欧洲| 久久久久国产精品人| 久久精品官网| 久久久精品日韩欧美| 欧美在线播放一区二区| 午夜精品一区二区三区在线视| 亚洲一区二区伦理| 亚洲淫片在线视频| 亚洲欧美999| 午夜精品久久久| 亚洲欧美日韩国产一区二区三区| 亚洲女爱视频在线| 欧美一级理论片| 欧美在线观看www| 久久精品国产99| 浪潮色综合久久天堂| 久热这里只精品99re8久| 乱人伦精品视频在线观看| 麻豆精品视频在线| 欧美国产精品| 欧美午夜不卡在线观看免费| 欧美午夜在线一二页| 国产精品欧美经典| 国产一区二区三区成人欧美日韩在线观看 | 在线观看日产精品| 亚洲黄页视频免费观看| 亚洲精品影视在线观看| 夜夜夜精品看看| 亚洲欧美久久久| 久久精品视频va| 欧美成人综合在线| 日韩视频精品| 亚洲欧美一级二级三级| 久久视频国产精品免费视频在线| 美女主播精品视频一二三四| 欧美紧缚bdsm在线视频| 国产精品日韩精品欧美精品| 国产亚洲欧美日韩一区二区| 亚洲黑丝在线| 亚洲欧美国产77777| 免费成人高清在线视频| 亚洲精品一区二区三区在线观看 | 国产综合在线视频| 亚洲毛片在线看| 久久精品国产77777蜜臀| 欧美成人精品三级在线观看| av成人福利| 久久亚洲捆绑美女| 欧美性做爰毛片| 亚洲国产合集| 午夜精品在线观看| 欧美黄色一区| 午夜亚洲性色视频| 欧美日韩a区| 韩国女主播一区| 亚洲视频欧美在线| 暖暖成人免费视频| 亚洲天堂成人在线观看| 欧美a级片一区| 国内精品免费在线观看| 亚洲视频精品| 亚洲承认在线| 久久久久久久久岛国免费| 欧美日韩一区二区在线视频| 亚洲大胆av| 久久久久成人精品免费播放动漫| 亚洲精品在线观看视频| 老司机一区二区三区| 国产日韩高清一区二区三区在线| 一区二区三区免费看| 欧美大片在线观看| 久久精品99国产精品| 国产精品午夜国产小视频| 一区二区三区成人| 亚洲国产精品小视频| 久久日韩精品| 激情欧美日韩| 久久午夜精品一区二区| 午夜一区不卡| 国产精品一二一区| 亚洲欧美卡通另类91av| 亚洲美女毛片| 欧美日韩国产综合视频在线| 亚洲人成亚洲人成在线观看图片| 六月天综合网| 久久频这里精品99香蕉| 一区在线影院| 久久综合免费视频影院| 久久激情久久| 激情欧美一区二区三区| 久久综合亚洲社区| 久久精品夜色噜噜亚洲a∨ | 亚洲激情女人| 欧美国产亚洲视频| 蜜桃av噜噜一区二区三区| 亚洲黄色成人| 亚洲国产精品va在线看黑人| 免费看亚洲片| 99天天综合性| 一区二区三区视频在线| 国产精品免费aⅴ片在线观看| 亚洲欧美韩国| 香蕉久久夜色精品国产|