对菱形继承关系直接地多重继承是通不过编译的

来源: 2011-03-18 21:19:10 [博客] [旧帖] [给我悄悄话] 本文已被阅读:

你试试就知道了,因为当发生你说的那种情况,编译器会对继承关系的模糊性报错。小弟n年前一直是用c++的,对这个门儿清。

一个普遍的解决办法就是虚拟继承,也就是说,B和C在继承A的时候都用virtual方式。

当然,最实际的办法就是改用接口,这个是最根本和有效的办法。A,B,C全都设计成接口,需要任何一种类,只需要实现相应接口就行了,这个是当年所有系统分析员公认的。