發信人jiannrong@kkcity.com.tw ( ),
看板Programming
標 題如何證明只有一個基底類別?
發信站KKCITY (Tue Jul 3 20:05:14 2007)
轉信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.chu!Leo.mi.chu!zoonews.ee.nt
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
》──┘※※ 內容豐富多元的線上音樂台 ※※
--
推 jeunder:在 A 的 constructor 印訊息, 就可以知道 61.64.148.116 07/03 23:49
→ jeunder:A 被產生幾次. 61.64.148.116 07/03 23:49
推 avhacker:證明? SPEC 就是證明! 140.123.19.235 07/04 01:38
推 Killercat:其實鑽石繼承能免就免 對維護者是噩夢220.135.220.171 07/04 07:17
→ Killercat:可以把兩個CLASS整合一下分開220.135.220.171 07/04 07:17