Kurz. Den Destructor muss man nur überschreiben, wenn man selber in der Klasse Objekte erstellt, die freigegeben werden müssen. Und dann ruft man ganz zu Anfang im Code vom Destructor inherited auf, um den Destructor der Elternklasse aufzurufen und dann gibt man seinen Kram frei.
An welcher Stelle im Destruktor dieses
inherited {destroy}
korrekt placiert ist, weiß ich bis heute nicht.
Ich tat es bisher am Ende des Destroys, weil in der Delphi-Hilfe (Delphi 3) folgendes Codebeispiel enthalten ist:
Zitat:
Im folgenden Beispiel sehen Sie, wie der im vorhergehenden Abschnitt für die Klasse TShape deklarierte Destruktor implementiert werden kann:
Delphi-Quellcode:
destructor TShape.Destroy;
begin
FBrush.Free;
FPen.Free;
inherited Destroy;
end;
Die letzte Aktion eines Destruktors ist normalerweise der Aufruf des geerbten Destruktors, mit dem die geerbten Felder des Objekts freigegeben werden.
Was stimmt denn nun?