c ++从2个函数多重继承,其中一个是纯虚拟的

c++ Multiple inheritance from 2 functions, while one of them is pure virtual

假设我们有一个 class 继承自另外 2 个 classes,它们都有一个具有相同签名的虚函数。 因为签名相同,所以会出现错误,因为mainclass不知道从谁那里继承虚函数。 此外,如果函数是 虚拟函数,则需要在主函数 class 中对其进行初始化。 所以我的问题是,如果 main class 继承自 2 个具有相同虚函数的 classes 但 其中一个 是纯虚函数,它会只使用第二个?

还是需要做其他事情?

顺便说一句,如果可能的话,我想看看你写的代码来回答这个问题。

谢谢:)

if the main class inherits from 2 classes with same virtual function but one of them is a pure virtual, will it just use the second one?

没有。 C++ 不会假设您想要那种行为。

Or something else needs to be done?

如果不希望派生的 class 是抽象的,则必须实现函数。

void Derived::func()
{
    SomeBase::func();
}