TObject.Destroy ist ja nun mal ohne code
TObject.Free auch (wenn man nicht im ARC modus ist)
Also brauche ich Inherited Destroy in Nachfahren auch nicht aufrufen, oder?
Delphi-Quellcode:
unit test
interface
uses System.types, classes, math, TypInfo, sysutils;
type
TMYObject =
class
public
owner:tobject;
Number:Integer;
Destructor Destroy;
override;
end;
var MYObject:tMyObject;
implementation
Destructor TMYObject.destroy;
Begin
end;
initialize
MYObject := tMyObject.create;
MYObject.Owner := MyObject;
MYObject.Number := 20000;
MYObject.free;
end.
Wie weiß Delphi (oder der Speichermanager) dass Owner und Number auf dem Heap frei sind wenn MYObject.free keinen Code ausführt?