Angenommen, ich habe eine Basisklasse und mehrere andere Klassen, die die Basisklasse benutzen. Sollte ich für jede Klasse einen eigenen Destruktor schreiben, oder reicht es, nur für die Basisklasse einen Destruktor zu schreiben? (Der Destruktor soll nur den Zeiger auf das Objekt mit delete(this) loeschen und ich weiss nicht, ob es problematisch ist, nur den Destruktor für die Basisklasse zu deklarieren, da ich nicht weiss, ob dieser Zeiger auf Unterklassen richtig loeschen kann)
Kann ich einen Zeiger auf eine Basisklasse deklarieren, und dann den Befehl Zeiger=new(Unterklasse); verwenden, oder gibt das Probleme?
Sollte ich für jede:Klasse einen eigenen Destruktor:schreiben,
Ja.
(Der Destruktor soll nur den:Zeiger auf das Objekt mit delete(this):loeschen
H"a"a?
Ein Destruktor soll Elemente der Klasse, denen explizit Speicher zugewiesen wurde, freigeben, da ein delete§ nur die Pointer, aber nicht deren Inhalt freigibt. Da ich mal annehme, dass in den abgeleiteten Klassen unterschiedlich grosse Speicherbereiche geholt werden, sollten diese auch unterschiedlich freigegeben werden. Ein Destruktor sieht idealerweise wie das Spiegelbild des Konstruktors aus.
Kann ich einen Zeiger auf eine:Basisklasse deklarieren, und dann den:Befehl Zeiger=new(Unterklasse);:verwenden,
Ja, aber es gibt Probleme, wenn Du auf spezielle Elemente der abgeleiteten Klasse zugreifen willst. Die kennt der Basistyp nicht.
Welche Sprache? (C++ mit casting, pascal mit extra Klassenzeiger)