Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#1

Wo wird der Heap von Feldvariablen von Objekten freigegeben?

  Alt 23. Feb 2023, 12:48
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?
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (23. Feb 2023 um 13:02 Uhr)
  Mit Zitat antworten Zitat