假设我们有一个继承自两个基类的类(多重继承)。Baseclass A
是抽象的,声明了一个纯虚函数foo
,另一个 baseclass B
声明并实现了foo
相同签名的函数。
struct A
{
virtual void foo(int i) = 0;
};
struct B
{
virtual void foo(int i) {}
};
struct C : public A, public B {};
我想在派生中使用foo
from base的实现。但是,如果我没有在派生中第二次实现该函数,我将无法实例化它的任何对象(它仍然是抽象的)。虚拟继承在这里没有预期的帮助(并且没有公共基类)。class B
class C
foo
class C
class A
class B
我想知道是否有一种方法可以“导入” foo
from class B
into的实现,class C
以便不必重复相同的代码。
上面的例子当然是人为的。我想实现的原因foo
是我class B
想派生class D : public B
和使用class B
. foo
我知道继承不是(主要)用于代码重用,但我仍然想以这种方式使用它。