對菱形繼承關係直接地多重繼承是通不過編譯的

來源: 寂寞遠行客 2011-03-18 21:19:10 [] [博客] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (366 bytes)

你試試就知道了,因為當發生你說的那種情況,編譯器會對繼承關係的模糊性報錯。小弟n年前一直是用c++的,對這個門兒清。

一個普遍的解決辦法就是虛擬繼承,也就是說,B和C在繼承A的時候都用virtual方式。

當然,最實際的辦法就是改用接口,這個是最根本和有效的辦法。A,B,C全都設計成接口,需要任何一種類,隻需要實現相應接口就行了,這個是當年所有係統分析員公認的。

所有跟帖: 

多重繼承帶來的風險問題遠大於其利益,用接口Interface或抽象abstracut,虛擬virtual的方式更好 -企鵝肥肥- 給 企鵝肥肥 發送悄悄話 企鵝肥肥 的博客首頁 (158 bytes) () 03/19/2011 postreply 18:37:42

我覺得應該叫多父繼承更好些。 -企鵝肥肥- 給 企鵝肥肥 發送悄悄話 企鵝肥肥 的博客首頁 (0 bytes) () 03/19/2011 postreply 18:43:46

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”