继承和派生类

时间:2018-04-14 09:11:05

标签: c++ class inheritance derived

编译器说第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;   
}

2 个答案:

答案 0 :(得分:1)

您需要指定要调用的基本函数 你可以这样做。

alert(data);

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

答案 1 :(得分:1)

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

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