看板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
》──┘※※ 内容丰富多元的线上音乐台 ※※
--
1F:推 jeunder:在 A 的 constructor 印讯息, 就可以知道 61.64.148.116 07/03 23:49
2F:→ jeunder:A 被产生几次. 61.64.148.116 07/03 23:49
3F:推 avhacker:证明? SPEC 就是证明! 140.123.19.235 07/04 01:38
4F:推 Killercat:其实钻石继承能免就免 对维护者是噩梦220.135.220.171 07/04 07:17
5F:→ Killercat:可以把两个CLASS整合一下分开220.135.220.171 07/04 07:17