C++ c++;来自2个函数的多重继承,其中一个是纯虚拟的

C++ c++;来自2个函数的多重继承,其中一个是纯虚拟的,c++,multiple-inheritance,pure-virtual,C++,Multiple Inheritance,Pure Virtual,假设我们有一个类,它继承了另外两个类,这两个类都有一个具有相同签名的虚函数。 因为签名相同,所以会出现错误,因为主类不知道从谁继承虚拟函数。 此外,如果函数是纯虚函数,则需要在主类中对其进行初始化。 所以我的问题是,如果主类继承了两个具有相同虚函数的类,但是其中一个是纯虚类,那么它会使用第二个吗 还是需要做些别的事情 顺便说一句,如果可能的话,我想看看你写的代码来回答这个问题 谢谢:) 如果主类继承自具有相同虚函数的两个类,但其中一个是纯虚类,那么它会使用第二个吗 < C++ >不会假定你想要那

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

还是需要做些别的事情

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

谢谢:)

如果主类继承自具有相同虚函数的两个类,但其中一个是纯虚类,那么它会使用第二个吗

< C++ >不会假定你想要那个行为。< /P> 还是需要做些别的事情

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

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

听起来像是家庭作业帮助。你为什么不写出来并测试一下呢?到目前为止你都试了些什么?Re:“main类不知道从谁那里继承虚拟函数”——这相当混乱。在派生类中使用单个函数重写来自两个不同基类的具有相同签名的两个函数是没有问题的。当您调用基类函数时,调用是不明确的,但无论任何函数是否为虚拟函数,这都是正确的。Re:“如果函数为纯虚拟函数,则需要在主类中初始化”--否,如果要创建派生类型的对象,则需要重写它。