C
chronixTT
Ich habe eine Frage zur Vererbung.
Ich habe eine Eltern-Klasse von der 2 Kinder abgeleitet werden.
Diese Kinder überschreiben jeweils eine Methode der Eltern-Klasse mit einer eigenen.
Im Hauptprogramm soll der Nutzer zur Laufzeit entscheiden welche der 2 Kind-Klassen benutzt werden soll.
Ich wollte es jetzt so machen, dass ich einen zeiger auf eine Instanz der Elternklasse anlege und darüber die methode aufrufe.
Dabei wird zur Laufzeit aber immer die Methode der Eltern-Klasse aufgerufen (da der Zeiger ja auch von diesem Typ ist!).
Wie müsste ich das richtig machen?
Codebeispiel:
class Eltern{ Public: doSomething(void){ cout << 'a'; }}
class Kind1 : Eltern{ Public: doSomething(void){ cout << 'b'; }}
class Kind2 : Eltern{ Public: doSomething(void){ cout << 'c'; }}
Main:
Eltern *x = new Kind1();
x->doSomething();
Ausgabe: "a";
Ich habe eine Eltern-Klasse von der 2 Kinder abgeleitet werden.
Diese Kinder überschreiben jeweils eine Methode der Eltern-Klasse mit einer eigenen.
Im Hauptprogramm soll der Nutzer zur Laufzeit entscheiden welche der 2 Kind-Klassen benutzt werden soll.
Ich wollte es jetzt so machen, dass ich einen zeiger auf eine Instanz der Elternklasse anlege und darüber die methode aufrufe.
Dabei wird zur Laufzeit aber immer die Methode der Eltern-Klasse aufgerufen (da der Zeiger ja auch von diesem Typ ist!).
Wie müsste ich das richtig machen?
Codebeispiel:
class Eltern{ Public: doSomething(void){ cout << 'a'; }}
class Kind1 : Eltern{ Public: doSomething(void){ cout << 'b'; }}
class Kind2 : Eltern{ Public: doSomething(void){ cout << 'c'; }}
Main:
Eltern *x = new Kind1();
x->doSomething();
Ausgabe: "a";