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