In
Abschnitt 6.3.2 Destruktor steht:
* inherited sollte im Konstruktor immer aufgerufen werden
richtig wäre aber:
* inherited
muss im Destruktur immer
als letzte Anweisung aufgerufen werden
Das Wort "sollte" ist zu schwach, deshalb habe ich es nach "muss" geändert.
Und der Zusatz "als letzte Anweisung" ist wohl auch nötig.
Delphi-Quellcode:
// Beispiel falsche Reihenfolge, inherited ist nicht letzte Anweisung
destructor TMeineKlasse.Destroy;
begin
inherited;
FListe.Free;
end;
PS: es fehlen auch noch folgende Sätze
* der Destruktor muss grundsätzlich immer Destroy heisen
* es gibt nur einen Destruktor; Konstruktoren darf es dagegen auch mehrere geben