如何在C ++多重继承中选择继承哪种基类方法?

时间:2015-08-23 09:21:14

标签: c++ inheritance multiple-inheritance ambiguity virtual-inheritance

请考虑以下简单示例:

figure.cpp

此代码不起作用,因为调用foo是不明确的。但问题是:

如何定义应该从哪些类继承哪些方法?如果我有这样的机会?

1 个答案:

答案 0 :(得分:1)

消除对函数的调用。请看以下示例:

class A { virtual void foo(); };
class B { virtual void foo(); };
class C : public A ,public B { void foo(); };

从A,B甚至从子类调用foo:C do

C *obj = new C;
obj->foo();
obj->A::foo();
obj->B::foo();

来源/灵感:http://www.cprogramming.com/tutorial/multiple_inheritance.html