Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?

  Alt 23. Feb 2023, 15:13
Ich dachte, das hätte ich deutlich gemacht.

Also wann wird _ClassDestroy aufgerufen? Es ist ne CompilerMagic sache nehme ich an so wie der RefCount bei ARC.
Wird es automatisch nach .Free eingefügt?
Genauer gesagt nach dem Destroy, weil das ein destructor ist. Das Free ist ja nur eine ganz normale Methode. Vor dem Destroy wird übrigens auch noch _BeforeDestruction aufgerufen. Diese Aufrufe sieht man nirgendwo im Quellcode, sondern der Compiler setzt sie automagisch ein.

Nein, nicht überall - zumindest nicht bedingungslos. So sollte man bei einem override von Assign nur dann das inherited aufrufen, wenn man weiß, dass die Parentklasse da noch was Sinnvolles macht. Leitet man direkt von TPersistent ab oder gibt es in der Hierarchie dazwischen kein Assign-override, dann sollte man inherited nur dann aufrufen, wenn man mit der Source nichts anfangen kann. Sinngemäß gilt das auch für AssignTo.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat