Hallo
In meiner Klassenhierarchie gibt es eine Vaterklasse und zwei Kindklassen. Die Vaterklasse ist eine vollständige Klasse mit Eigenschaften und
implementierten Methoden. Es soll aber auch abstrakte Methoden geben, die in der Vaterklasse nicht implementiert werden, sonder in den Kindklassen.
Gibt es da eine Möglichkein nur eine abstrakte Methode in der Vaterklasse deklarieren. Die Methode soll auch virtual sein, damit ein Vaterpionter die Methode der richtigen
Kindklasse ausführt...
danke
[gelöst]klasse mit abstrakter methode
[gelöst]klasse mit abstrakter methode
Zuletzt geändert von redbulls am 23. November 2011 14:19, insgesamt 1-mal geändert.
sehr interessiert an Qt
Re: klasse mit abstrakter methode
Verstehe ich Dich richtig, dass Du eine vollständig virtuelle Methode haben möchtest? Wenn ja, dann wird diese in C++ so deklariert:
Dadurch wird die Klasse auch virtuell, d.h. Du wirst keine Objekte dieser Klasse anlegen können. Abgeleitete Klassen, die diese Methode nicht implementieren, sind dann automatisch auch virtuell.
Code: Alles auswählen
virtual void myPureVirtualMethod() = 0;
Re: klasse mit abstrakter methode
Einfach die Deklaration der Methode auf 0 setzen
Code: Alles auswählen
virtual void myMethod() = 0;
Re: klasse mit abstrakter methode
Ok, danke für die Antworten!
Wenn ich dann eine abstrakte Vaterklasse habe, kann diese Vaterklasse dann trotzdem Methoden implementiert haben, die die Kinder erben?
Und kann ein Vaterpointer ein auf ein Kind referenzieren? :
Wenn ich dann eine abstrakte Vaterklasse habe, kann diese Vaterklasse dann trotzdem Methoden implementiert haben, die die Kinder erben?
Und kann ein Vaterpointer ein auf ein Kind referenzieren? :
Code: Alles auswählen
Vaterklasse* vaterklasse = new Kindklasse();
sehr interessiert an Qt
Re: klasse mit abstrakter methode
Ja, Deine Vaterklasse ist - abgesehen davon, dass Du keine Instanz davon erzeugen kannst - eine ganz normale Klasse. Sie kann Methoden beinhalten (virtuell und nicht virtuell), polymorphe Aufrufe etc.