![]() |
OOP -> Objekt frei geben
Hallo!
Ich hab ne frage zu OOP: Ich habe ein Objekt, das wiederum mehrere Unterobjekte hat. Reicht es jetzt wenn ich beim beenden des Programms das HauptObjekt freigebe, oder sollte jedes unterobjekt zusätzlich freigegeben werden (also mit free)? |
Re: OOP -> Objekt frei geben
Im Destruktor des Objektes solltest du logischerweise alle Unterobjekte freigeben. ;)
|
Re: OOP -> Objekt frei geben
ok, danke!
Hatte mal irgendwo anders gelesen, des man des net braucht... |
Re: OOP -> Objekt frei geben
Beim Beenden des Programmes ist das ziemlich egal, da dort sowieso alles in die Tonne getreten wird, aber grundsätzlich musst du alle von dir instanziierten Objekte auch wieder freigeben (solange du nicht gerade Delphi.NET verwendest :wink: ).
|
Re: OOP -> Objekt frei geben
Zitat:
|
Re: OOP -> Objekt frei geben
Zitat:
MfG freak |
Re: OOP -> Objekt frei geben
Zitat:
du meinst wahrscheinlich Komponenten die mit einem Owner erzeugt wurden z.B.:
Delphi-Quellcode:
Wenn der Button so erzeugt wurde, sorgt der Owner dafür, daß der Button auf wieder freigegeben wird (das gesamte Delphi-Formularstreaming basiert darauf)
MeinButton := TButton.Create(meinFormular);
In einem eigenen Objekt werden die Unterobjekte normalerweise im Konstruktor erzeugt und im DEstruktor wieder freigegeben. Da der Aufruf von "Free" den Destruktor ausführt werden die Unterobjekte (quasi) automatisch mit freigegeben, wenn dies im Destruktor so programmiert wurde. Ciao, Ralf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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 by Thomas Breitkreuz