also dass man den inherited-Befehl braucht, wenn man seine Klasse von einer Parent-Klasse ableitet/deklariert/wie auch immer, ist ja klar. Aber wie sieht es aus, wenn man eine komplett eigene Klasse erstellt, die folglich direkt von TObject kommt?
Code: Alles auswählen
type
TMyClass = class
public
constructor Create;
end;
[...]
constructor TMyClass.Create;
begin
inherited Create; // hier notwendig?
end;
Ich habe gerade so ein Paar alte Code-Zeilen von mir durchgelesen und da war so eine selbsgemachte Klasse drinn', wo ich auch gleich destructor Free; ohne inherited in die public-Declaration gepackt habe. Najaa, es geht, aber jetzt frage ich mich: Wieso?
Wenn ich das richtig verstanden habe, gibt der destructor am Ende den Speicher der Klasse frei und danach darf nichts mehr in dieser Klasse ausgeführt werden - free dagegen ist nur eine gewöhnliche procedure, die dann destroy am Ende aufruft. Aber was ist der Sinn davon, destroy und free zu trennen?