存在问题
C++中支持多重继承,但是由于这个特性,导致会有如下继承关系。
这样,类D就会同时拥有从类B中继承下来的A中的函数,也会拥有从类C中继承下来的A中的函数,会产生模糊调用的现象。
解决方案
为了解决这个问题,可以采用“虚基类”解决。
即如下:
class A
{}
class B: public virtual A
{}
class C: public virtual A
{}
class D: public B, public C
{}
这样,就能完美解决A中方法由两条线继承到D中的时候的模糊问题。这就是著名的臭名昭著的C++多继承导致的“菱形继承问题”的完美解决方案。
版权声明:本文为xiongpursuit88原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。