如何證明只有一個基底類別?

看板Programming作者時間17年前 (2007/07/03 20:32), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串1/1
http://caterpillar.onlyfun.net/Gossip/CppGossip/virtualInheritance.html http://caterpillar.onlyfun.net/Gossip/CppGossip/virtualInheritance.html 請問以下的敘述: 虛擬繼承是在繼承基底類別時使用"virtual"關鍵字,例如: class A { // 實作 }; class B1 : virtual public A { // 虛擬繼承 // 實作 }; class B2 : virtual public A { // 虛擬繼承 // 實作 }; class C : public B1, public B2 { // 實作 }; 在上例中,B1與B2以虛擬繼承的方式繼承了A類別,這個好處是當有類別多重繼承了某個 基底類別時,在該類別中將會只有一個基底類別存在,而不會有多個複本,例如在上例中 ,類別C中將只會有一個基底類別A的存在。 如何證明只有一個基底類別呢? 謝謝! -- ┌─────KKCITY─────┐KKMAN團隊 全新力作 ◎◎KKBOX◎◎ bbs.kkcity.com.tw 知名歌手通通都有 所有新歌想聽就聽 └──From:59.125.181.197 ──┘※※ 內容豐富多元的線上音樂台 ※※ --

07/03 23:49, , 1F
在 A 的 constructor 印訊息, 就可以知道
07/03 23:49, 1F

07/03 23:49, , 2F
A 被產生幾次.
07/03 23:49, 2F

07/04 01:38, , 3F
證明? SPEC 就是證明!
07/04 01:38, 3F

07/04 07:17, , 4F
其實鑽石繼承能免就免 對維護者是噩夢
07/04 07:17, 4F

07/04 07:17, , 5F
可以把兩個CLASS整合一下分開
07/04 07:17, 5F
文章代碼(AID): #16Ya7300 (Programming)