Search code examples
c++classinheritancederived

inheritance and derived classes


The compiler says that function dummy() on line 22 (in classs doumbClass) is ambiguous. How can I fix that?

#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;   
}

Solution

  • you need to specify which base function you want to call you can do this.

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

    or

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