继承和派生 类

inheritance and derived classes

编译器说第 22 行(类 doumbClass 中)的函数 dummy() 不明确。我该如何解决?

#include<iostream>
#include<iomanip>
using namespace std;

class BusinessClass {
    public :
        virtual void dummy(){
            cout<<"businessClass"<<endl;
        }
};

class EconomyClass {
    public:
        void dummy() {
            cout<<"economyClass"<<endl;
        }
};

class DoumbClass : public BusinessClass, public EconomyClass{
    public:
        void moreDumb(){
            dummy();
        }
};

int main(int argc, char **argv)
{
    DoumbClass xclass;
    xclass.moreDumb();
    return 0;   
}

您需要指定要调用的基函数 你可以做到这一点。

void moreDumb() {
    EconomyClass::dummy();
}

void moreDumb() {
    BusinessClass::dummy();
}

正如您可以使用 Arkady Godlin 方法一样,您也可以在 class 声明中指定要使用的 dummy 函数,如果您事先知道的话。像这样:

class DoumbClass :public BusinessClass,public EconomyClass
{
public:
    using BusinessClass::dummy;
//or using EconomyClass::dummy;
};