Code: Alles auswählen
#include <iostream>
class B1
{
public:
B1(void) {}
~B1(void){}
virtual void who() {
std::cout << "B1" << std::endl;
}
};
class B2
{
public:
B2(void) {}
~B2(void){}
virtual void who() {
std::cout << "B2" << std::endl;
}
};
class Derived: public B1, B2
{
public:
Derived(void) {}
~Derived(void){}
};
int main(void) {
Derived d;
d.who()
}
Meine Frage jezt: Was wäre hier der Ideale weg dem Compiler zu sagen welche Basisimplementierung er aufrufen soll.
Spontan fällt mir ein:
Die abgeleitete Klasse auf die entsprechende Basisklasse casten -> nicht schön aber funktioniert
Die Mehtode who() in der abgeleiteten Klasse so implementieren das die entsprechende Basismethode aufgerufen wird.
Kennt jemand noch weitere Möglichkeiten solche Mehrdeutigkeiten möglichst elegant aufzulösen?