![]() |
Wo wird der Heap von Feldvariablen von Objekten freigegeben?
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:
Wie weiß Delphi (oder der Speichermanager) dass Owner und Number auf dem Heap frei sind wenn MYObject.free keinen Code ausführt?
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. |
AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?
Zitat:
OK, Spaß beiseite. Man ruft immer (irgendjemand findet hier sicher noch eine Ausnahme) inherited Destroy auf ebenso wie inherited Create, weil man eben nicht von obigem Szenario betroffen sein möchte, falls es mal wirklich so kommt. Zitat:
|
AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?
Andersrum: Man kann auch einfach immer und überall inherited reinmachen, selbst wenn es noch nicht überschrieben ist.
|
AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?
Zitat:
Wird es automatisch nach .Free eingefügt? |
AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?
Zitat:
|
AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?
überall
|
AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?
Zitat:
Zitat:
Zitat:
|
AW: Wo wird der Heap von Feldvariablen von Objekten freigegeben?
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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