Seite 1 von 1

[gelöst]klasse mit abstrakter methode

Verfasst: 23. November 2011 12:39
von redbulls
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

Re: klasse mit abstrakter methode

Verfasst: 23. November 2011 13:19
von brax
Verstehe ich Dich richtig, dass Du eine vollständig virtuelle Methode haben möchtest? Wenn ja, dann wird diese in C++ so deklariert:

Code: Alles auswählen

virtual void myPureVirtualMethod() = 0;
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.

Re: klasse mit abstrakter methode

Verfasst: 23. November 2011 13:20
von archer
Einfach die Deklaration der Methode auf 0 setzen

Code: Alles auswählen

virtual void myMethod() = 0;

Re: klasse mit abstrakter methode

Verfasst: 23. November 2011 14:00
von redbulls
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? :

Code: Alles auswählen

Vaterklasse* vaterklasse = new Kindklasse();

Re: klasse mit abstrakter methode

Verfasst: 23. November 2011 14:16
von brax
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.

Re: klasse mit abstrakter methode

Verfasst: 23. November 2011 14:19
von redbulls
sehr gut, danke