Delphi-Quellcode:
destructor TStringTree.Destroy;
var
i: Integer;
begin
for i := 0 to Count - 1 do FreeAndNil(Objects[i]);
end;
Es fehlt nicht nur der Aufruf von inherited, sondern unter 10.3 und älter compiliert es gar nicht.
Der Code von DeddyH ist vollkommen ausreichend.
Delphi-Quellcode:
destructor TStringTree.Destroy;
var
i: Integer;
begin
for i := 0 to Count-1 do
Objects[i].Free;
inherited;
end;
Aber wird bei Objects [i].Free nicht nur der Destruktor von TObject aufgerufen?
Es soll ja aber mein Destruktor aufgerufen werden. Warum muss ich da nicht casten?
Free ruft Destroy auf und das ist
virtual
.