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

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

有這么一個關于虛函數和虛繼承的問題,如下:
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,考慮到虛繼承和自身的虛函數,我們也可以算出來起大小為8+8+4 = 20
對于C,其大小為20+8+4 = 32。
其中 4為虛繼承所占用的指針。

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


派生類和基類擁有相同的虛函數表。

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

所以兩個是有所區別的。

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

FeedBack:
# re: 虛函數與虛繼承的思考[未登錄]
2009-10-07 23:23 | vincent
orz..您一定看了程序員面試寶典這本書  回復  更多評論
  
# re: 虛函數與虛繼承的思考
2010-06-18 09:31 | 小時候可靚了
虛繼承是個很神奇的東西,貌似不同的編譯器的實現都有區別。但非虛繼承一般都差不多。。 子類、父類共享虛表,子類實現了的虛函數,就重填到虛表中,沒有的就不填,這樣當我們通過父類調用的時候,自然就調用到了。虛繼承則有點麻煩。。。  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲视频在线一区观看| 国产情侣一区| 亚洲美女在线一区| 亚洲免费黄色| 国产精品亚洲综合| 猫咪成人在线观看| 欧美日韩大片| 欧美一区二区三区日韩视频| 欧美一区二区精品久久911| 韩国一区二区三区美女美女秀| 欧美成人免费播放| 欧美视频中文字幕| 久久这里有精品视频| 欧美精品激情在线| 久久国产精品久久久久久久久久 | 欧美韩日一区二区| 欧美三级资源在线| 麻豆精品在线观看| 国产精品盗摄久久久| 久久婷婷一区| 欧美午夜免费影院| 欧美www视频在线观看| 国产精品国产三级国产普通话99| 久久久噜噜噜久久狠狠50岁| 欧美日本国产一区| 裸体一区二区三区| 国产精品成人一区二区网站软件 | 在线亚洲一区二区| 久久精品动漫| 午夜精品福利一区二区三区av| 久久综合网hezyo| 欧美在线高清视频| 国产欧美在线视频| 美女任你摸久久| 国产精品黄色在线观看| 欧美国产激情二区三区| 国产农村妇女毛片精品久久莱园子 | 校园春色国产精品| 欧美成人一区二区三区| 久久综合999| 国产精品资源在线观看| 日韩西西人体444www| 亚洲国产成人久久| 久久精品视频免费播放| 久久精品国产99国产精品澳门 | 久久欧美肥婆一二区| 欧美亚洲视频在线观看| 欧美性开放视频| 亚洲毛片在线观看.| 亚洲黄色影片| 久久久久免费视频| 亚洲欧美国产毛片在线| 欧美一区二区三区在线| 欧美另类综合| 欧美第一黄色网| 在线欧美影院| 久久综合久久综合九色| 乱中年女人伦av一区二区| 国产伪娘ts一区| 性色av一区二区三区在线观看| 亚洲特色特黄| 国产精品wwwwww| 亚洲一区制服诱惑| 欧美一区二区免费| 国产午夜精品视频| 久久精品国产精品亚洲精品| 老牛嫩草一区二区三区日本| 伊人成人在线视频| 欧美色大人视频| 亚洲老板91色精品久久| 在线亚洲一区二区| 国产精品美腿一区在线看| 亚洲一区欧美激情| 久久久午夜精品| 在线欧美视频| 欧美日本三区| 亚洲一区二区免费视频| 久久精品视频在线播放| 亚洲高清不卡| 欧美日韩国产影院| 午夜亚洲伦理| 欧美高清免费| 亚洲一区二区三区四区五区黄 | 久久这里只有精品视频首页| 亚洲国产精品成人| 中文av一区二区| 国产精品永久| 免费美女久久99| 一区二区国产日产| 久久久久久高潮国产精品视| 亚洲国产另类久久精品| 欧美三级黄美女| 久久精品夜夜夜夜久久| 亚洲精品1区| 久久久激情视频| 亚洲经典在线看| 国产欧美视频一区二区| 免费日韩一区二区| 亚洲午夜精品福利| 欧美大片一区| 久久大逼视频| 亚洲色图在线视频| 亚洲国产精品va在线看黑人动漫| 国产精品jvid在线观看蜜臀| 欧美中文字幕视频| 日韩视频国产视频| 欧美a级片网站| 欧美亚洲一级| 在线一区免费观看| 在线免费观看视频一区| 国产乱码精品1区2区3区| 欧美精品1区| 久久久亚洲国产美女国产盗摄| 亚洲视频精选| 亚洲精品国产品国语在线app | 欧美成人一区二区三区| 欧美在线一二三四区| 亚洲一区二区精品在线| 夜夜夜久久久| 亚洲丁香婷深爱综合| 久久女同互慰一区二区三区| 午夜视频久久久久久| 一区二区三区欧美| 亚洲精品久久久久久久久久久久久| 国产亚洲精品久久久久久| 国产精品久久久久高潮| 欧美日韩精品系列| 欧美日产国产成人免费图片| 噜噜噜久久亚洲精品国产品小说| 久久国产精品久久国产精品| 欧美亚洲一区二区在线| 亚洲一区二区三区四区五区午夜| 一本色道久久综合狠狠躁篇怎么玩 | 久久精品国产第一区二区三区最新章节| 亚洲精华国产欧美| 永久免费精品影视网站| 国内久久视频| 黄色精品一区| 亚洲电影一级黄| 伊人久久综合| 亚洲国产美女久久久久| 亚洲国产成人久久综合| 亚洲精品国产精品国自产观看| 亚洲黄色大片| 一本到高清视频免费精品| 一本色道久久综合狠狠躁篇的优点| 99国产精品国产精品久久| 一区二区三区久久精品| 亚洲欧美另类在线| 久久成人精品电影| 免费日韩av| 亚洲精品午夜精品| 国产精品99久久久久久久vr| 亚洲欧美国产高清va在线播| 欧美自拍丝袜亚洲| 麻豆freexxxx性91精品| 欧美日本韩国| 国产亚洲在线| 亚洲三级电影全部在线观看高清| 一区二区三区久久网| 欧美伊人久久| 美女亚洲精品| 99热这里只有成人精品国产| 午夜影院日韩| 农村妇女精品| 国产精品免费一区豆花| 在线成人h网| 亚洲午夜影视影院在线观看| 久久精品一区| 亚洲免费观看| 久久免费视频网站| 欧美日韩一区在线视频| 极品尤物久久久av免费看| 99国产精品视频免费观看一公开| 欧美在现视频| 亚洲欧洲一区| 亚洲欧美www| 欧美极品欧美精品欧美视频| 国产日韩欧美一区二区| 日韩一区二区福利| 久久躁狠狠躁夜夜爽| 一区二区国产在线观看| 美女啪啪无遮挡免费久久网站| 国产精品欧美久久久久无广告| 在线观看不卡| 久久国产精品毛片| 国产精品99久久99久久久二8 | 欧美一区二区黄色| 欧美日韩小视频| 亚洲国产欧美不卡在线观看| 欧美一区二区三区在线播放| 一本久久精品一区二区| 久久综合五月天婷婷伊人| 国产麻豆9l精品三级站| 中文欧美在线视频| 亚洲三级影院| 欧美高清成人| 久久久久九九视频| 国产精品亚洲欧美| 亚洲综合色噜噜狠狠|