[gelöst]klasse mit abstrakter methode

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

[gelöst]klasse mit abstrakter methode

Beitrag von redbulls » 23. November 2011 13:39

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
Zuletzt geändert von redbulls am 23. November 2011 15:19, insgesamt 1-mal geändert.
sehr interessiert an Qt

brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: klasse mit abstrakter methode

Beitrag von brax » 23. November 2011 14:19

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.

archer
Beiträge: 306
Registriert: 2. Februar 2006 10:56

Re: klasse mit abstrakter methode

Beitrag von archer » 23. November 2011 14:20

Einfach die Deklaration der Methode auf 0 setzen

Code: Alles auswählen

virtual void myMethod() = 0;

redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

Re: klasse mit abstrakter methode

Beitrag von redbulls » 23. November 2011 15:00

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();
sehr interessiert an Qt

brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: klasse mit abstrakter methode

Beitrag von brax » 23. November 2011 15:16

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.

redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

Re: klasse mit abstrakter methode

Beitrag von redbulls » 23. November 2011 15:19

sehr gut, danke
sehr interessiert an Qt

Antworten