Folgendes Problem:
Ich habe eine Klasse "Spieler" und z.B. die Klassen "LokalerSpieler", "Netzwerkspieler" und "AiSpieler", welche alle von der Klasse "Spieler" abgeleitet sind. Also folgender Code:
Code: Alles auswählen
class Spieler {
public:
Spieler();
void nextRound();
protected:
int runde;
};
class LokalerSpieler : public Spieler {
public:
Player();
};
class Netzwerkspieler : public Spieler {
public:
Netzwerkspieler();
void nextRound();
};
class AiSpieler : public Spieler {
public:
AiSpieler();
};
Führe ich nun folgenden Code aus, funktioniert das auch wunderbar:
Code: Alles auswählen
LokalerSpieler *lokal = new LokalerSpieler;
Netzwerkspieler *nw = new Netzwerkspieler;
AiSpieler *ai = new AiSpieler;
lokal->nextRound();
nw->nextRound();
ai->nextRound();
Code: Alles auswählen
LokalerSpieler *lokal = new LokalerSpieler;
Netzwerkspieler *nw = new Netzwerkspieler;
AiSpieler *ai = new AiSpieler;
QList<Spieler*> spielerliste;
spielerliste.append(lokal);
spielerliste.append(nw);
spielerliste.append(ai);
foreach(Spieler *spieler, spielerliste) {
spieler->nextRound();
}
Gibt es hier eine Möglichkeit dennoch die Methode der jeweiligen Kindklasse auszuführen?
Danke schonmal für Eure Hilfe!
Gruß,
Ted