AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Wo wird der Heap von Feldvariablen von Objekten freigegeben?
Thema durchsuchen
Ansicht
Themen-Optionen

Wo wird der Heap von Feldvariablen von Objekten freigegeben?

Ein Thema von QuickAndDirty · begonnen am 23. Feb 2023 · letzter Beitrag vom 23. Feb 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.587 Beiträge
 
Delphi 12 Athens
 
#1

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

  Alt 23. Feb 2023, 13:17
Andersrum: Man kann auch einfach immer und überall inherited reinmachen, selbst wenn es noch nicht überschrieben ist.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
QuickAndDirty

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

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

  Alt 23. Feb 2023, 13:30
Andersrum: Man kann auch einfach immer und überall inherited reinmachen, selbst wenn es noch nicht überschrieben ist.
aber warum? Meinst du jetzt nur destructor und constructor oder wirklich "überall" ?
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.587 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 23. Feb 2023, 14:09
überall
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

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

  Alt 23. Feb 2023, 14: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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.587 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 23. Feb 2023, 14:28
Nja, gundsätzlich erstmal überall, außer explizit dort, es man wirklich den Vorfahren nicht ausführen will.

Letzteres macht man bewusst.
Und so kann man es aber auch nicht vergessen, wenn man es (erstmal) standardmäßig immer macht.

Bei vererbten Forms, macht der Formdesigner auch erstmal in alle von ihm erzeugte Events rein.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz