Witam
Mam problem przy wielobazowym dziedziczeniu. Moim zadaniem jest zbudowaniem prostego programu pokazującego dziedziczenie i stworzyłem schemat ( w załączniku ) .
Jednym z poleceń jest : "na rzecz każdego z tych obiektów zrealizować zwykłe wywołania (z użyciem operatora kropka) metod z klasy podstawowej i klas pochodnych"
i problem się pojawia gdy chce wywołać metode :
amfibia.ktos_ty();
błąd : Amfibia::ktos_ty is ambiguous
Domyślam się że problem jest w tym że amfibia dziedziczy tą metodę od samochodu i od łodzi.
ale jak rozwiązać ten problem ? zmieniałem już specyfikator dostępu ale nic nie dało.
class Pojazd{
public:
void ktos_ty();
void wydaj_dzwiek(){
cout << "Dzwiek Pojazdu" << endl;
}
};
class Samochod : public Pojazd{
public:
void wydaj_dzwiek(){
cout << "Dzwiek Samochodu" << endl;
}
void jedz();
};
class Lodz : Pojazd{
public:
void wydaj_dzwiek(){
cout << "Dzwiek Lodzi" << endl;
}
void plyn();
};
class Amfibia :public Lodz, public Samochod{
public:
void wydaj_dzwiek(){
cout << "Dzwiek Amfibii" << endl;
}
};