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

Note of Justin

關于工作和讀書的筆記

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  47 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

留言簿(14)

搜索

  •  

積分與排名

  • 積分 - 53466
  • 排名 - 433

最新評論

閱讀排行榜

評論排行榜

[原創文章歡迎轉載,但請保留作者信息]

Justin 于 2010-01-21

Scott 開篇就直接說開了: C++ 陣營中關于多重繼承 (Multiple Inheritance, MI) 分成了兩派,一派認為多重繼承比單一繼承好,另外一邊則認為弊大于利。

所以本課的內容就是說說 MI 的優與劣。

MI 的第一個問題就是名字沖突, 最經典的例子就是鉆石問題 (diamond problem)。
設想 A 中有一個函數叫做 GetName() B C 中都將有這一函數成員,這個時候 D :: GetName() 的真正實現是來自 B 的還是 C 的呢?二義性出現了 (ambiguity)

不過如果真的發生了這種情況,要解決的方法也不是沒有,可以這樣做:

D?d;
d.B::GetName();?
//Calling?B's?implementation

嗯,很容易理解。

另外一個高階一點的方法叫做虛繼承 (virtual inheritance) 。對于在虛擬繼承中的父類,其中的成員都保證不會在后面的子類中出現二義現象 (ambiguity) 。似乎是專門為了 MI 才整出來的,汗 ……

例子還是已前面的鉆石問題:

class?A
{
???
public:
??????
void?GetName();
//..
};

class?B?:?virtual?public?A
{
//..
};

class?C?:?virtual?public?A
{
//..
};

class?D?:?public?B,?public?C
{
//..
}

D?d;
d.GetName();?
//there?is?no?ambiguity?here.

但是虛繼承不是沒有代價的,大師說這種技術會使得最終代碼變得更大,訪問虛擬繼承中的父類成員也會變得更慢一些。

這個也不難理解。和空間換時間一樣,和不給牛吃草牛就不干活一樣。 ( 另外的一個代價我還沒能完全理解透徹:書上說因為虛繼承中基類的初始化是由繼承關系中最底層的子類負責的,因此對于這些最底下的 嫡孫 類來說,就不是那么方便了 )

于是大師建議只有在必要的時候才使用虛繼承,而在虛繼承中的基類里也不要放置數據成員,這樣就不用擔心初始化的問題了。

不過存在就是合理,還是有需要用到 MI 的時候。一個在書中提到的使用 MI 的情形是:當需要從一個類 AClass 中繼承接口,又需要從另外一個類 BClass 中繼承實現細節時,就可以考慮在公有繼承 AClass 的同時又私有繼承 BClass 。道理大致就是這樣,就不編造程序畫蛇添足了。

總結一下: MI SI(Single Inheritance) 要復雜容易出錯 ( 比如說鉆石問題 ) ,即使可以用虛繼承來解決鉆石問題,但是其帶來的代碼體積增大,訪問效率下降以及初始化問題還是不能忽視的。最后話說回來,需要用到 MI 的時候,小心點用便是 @# %

【參考】 http://en.wikipedia.org/wiki/Virtual_inheritance

posted on 2010-03-15 09:18 Justin.H 閱讀(398) 評論(0)  編輯 收藏 引用 所屬分類: Effective C++ 炒冷飯
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 久久久久久91香蕉国产| 国产精品制服诱惑| 国产精品成av人在线视午夜片| 免费视频一区| 欧美日韩成人在线视频| 国产精品丝袜白浆摸在线| 国产日韩欧美在线看| 在线不卡视频| 亚洲深夜福利网站| 欧美中日韩免费视频| 美女网站久久| 一区二区冒白浆视频| 久久精品视频在线观看| 欧美乱在线观看| 国产日韩欧美不卡在线| 亚洲激情中文1区| 亚洲专区一区| 欧美激情一区二区三区在线视频| 亚洲三级网站| 翔田千里一区二区| 欧美福利视频在线观看| 国产精品亚洲人在线观看| 精品不卡视频| 午夜欧美精品久久久久久久| 亚洲福利视频免费观看| 亚洲女女做受ⅹxx高潮| 欧美日本国产一区| 韩国欧美国产1区| 中文精品99久久国产香蕉| 免费观看成人| 亚洲欧美日韩国产一区| 欧美激情一区二区三区在线视频| 国产亚洲成av人片在线观看桃| 日韩亚洲在线观看| 另类天堂av| 亚洲欧美影音先锋| 欧美日韩国产一级| 极品尤物一区二区三区| 亚洲综合日韩在线| 亚洲第一精品夜夜躁人人躁| 久久爱www久久做| 国产伦精品一区二区三区在线观看| 一区二区欧美亚洲| 亚洲国产精彩中文乱码av在线播放| 性做久久久久久免费观看欧美| 欧美午夜精品理论片a级按摩 | 亚洲国产二区| 久久另类ts人妖一区二区 | 欧美精品久久99| 亚洲人成77777在线观看网| 女人香蕉久久**毛片精品| 在线成人av.com| 黄色成人在线网址| 欧美一区二区三区在线看| 亚洲美女视频网| 欧美成人资源网| 最近看过的日韩成人| 欧美电影免费观看高清| 噜噜噜噜噜久久久久久91| 亚洲高清不卡| 亚洲国产99| 欧美电影打屁股sp| 日韩午夜在线| 夜夜嗨av一区二区三区网站四季av | 欧美激情一区二区| 香蕉国产精品偷在线观看不卡 | 久久精品视频免费观看| 国产日韩一区二区三区在线播放| 亚洲欧美国产制服动漫| 在线综合欧美| 国产亚洲欧美色| 蜜桃av噜噜一区二区三区| 免费中文字幕日韩欧美| 亚洲精品视频免费| 这里只有精品丝袜| 国产精品色在线| 久久免费一区| 欧美精品一区在线发布| 亚洲欧美国内爽妇网| 欧美一区综合| 99这里只有久久精品视频| 一区二区三区欧美| 一区二区三区在线视频免费观看| 欧美激情bt| 国产精品国产三级国产aⅴ9色| 久久国产66| 欧美另类在线播放| 久久蜜桃香蕉精品一区二区三区| 久久综合狠狠| 小辣椒精品导航| 免费av成人在线| 欧美一区二区三区久久精品茉莉花 | 91久久中文字幕| 国产精品任我爽爆在线播放| 美女视频一区免费观看| 欧美日韩国产成人| 欧美成人精品三级在线观看| 国产精品vvv| 久久国产精品久久久久久电车| 日韩视频在线免费| 亚洲国产欧美日韩| 久久男人资源视频| 欧美日韩一区不卡| 免费不卡欧美自拍视频| 国产精品美女久久久| 男人插女人欧美| 国产日韩欧美在线播放不卡| 亚洲美女性视频| 国产亚洲视频在线观看| 亚洲毛片在线| 亚洲精品免费在线播放| 久久福利毛片| 欧美一区视频| 欧美三级在线视频| 欧美国产亚洲视频| 国模精品一区二区三区色天香| 一区二区三区久久网| 亚洲精品欧美精品| 六月婷婷久久| 老司机精品视频一区二区三区| 国产精品一区二区你懂的| 一本色道久久综合精品竹菊| 99在线精品观看| 欧美日韩a区| 亚洲精品1234| 久久久精品国产免费观看同学| 亚洲人成网站在线播| 欧美在线视频免费| 久久精品三级| 国产精品五月天| 亚洲美女免费视频| 亚洲人成在线观看| 亚洲国产日韩欧美一区二区三区| 一区二区视频在线观看| 久久精品国产99国产精品澳门| 久久精品二区| 国模大胆一区二区三区| 性欧美大战久久久久久久久| 久久国产精品色婷婷| 国产精品亚洲成人| 亚洲欧美日本国产有色| 欧美在线观看视频在线| 欧美大片国产精品| 亚洲精品视频一区| 亚洲欧洲一级| 牛牛影视久久网| 久久视频在线看| 国产一区三区三区| 欧美中文字幕久久| 久久精品视频一| 国产在线不卡| 乱人伦精品视频在线观看| 亚洲第一天堂av| 一本色道久久综合| 国产精品人人做人人爽| 欧美一区二区三区免费大片| 乱码第一页成人| 亚洲精品国产精品国自产在线 | 亚洲一区一卡| 欧美中文字幕在线观看| 一区二区三区在线观看国产| 欧美成人免费网站| 一区二区精品在线| 久久婷婷国产综合尤物精品| 最新亚洲视频| 国产精品国产三级国产专区53 | 久久爱www| 亚洲看片免费| 国产一区美女| 欧美三级中文字幕在线观看| 欧美亚洲自偷自偷| 最新日韩在线视频| 久久精品欧洲| 一区二区三区四区蜜桃| 黄色av成人| 国产精品福利网站| 美女精品自拍一二三四| 一区二区三区日韩精品视频| 欧美二区不卡| 小黄鸭精品aⅴ导航网站入口| 亚洲黄色三级| 国产日韩精品视频一区| 欧美日韩成人在线视频| 久久理论片午夜琪琪电影网| 亚洲欧美激情视频| 亚洲人久久久| 欧美激情中文字幕一区二区| 久久久久高清| 亚洲视频大全| 91久久精品国产91性色| 国产综合亚洲精品一区二| 欧美特黄视频| 欧美精品国产精品| 欧美jizzhd精品欧美巨大免费| 久久福利毛片| 久久精品论坛| 久久精品二区亚洲w码| 午夜久久资源| 香蕉视频成人在线观看|