Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi OOP -> Objekt frei geben (https://www.delphipraxis.net/63211-oop-objekt-frei-geben.html)

maximus Caesar 15. Feb 2006 15:22


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)?

leddl 15. Feb 2006 15:26

Re: OOP -> Objekt frei geben
 
Im Destruktor des Objektes solltest du logischerweise alle Unterobjekte freigeben. ;)

maximus Caesar 15. Feb 2006 15:27

Re: OOP -> Objekt frei geben
 
ok, danke!
Hatte mal irgendwo anders gelesen, des man des net braucht...

Khabarakh 15. Feb 2006 15:29

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: ).

leddl 15. Feb 2006 15:30

Re: OOP -> Objekt frei geben
 
Zitat:

Zitat von maximus Caesar
Hatte mal irgendwo anders gelesen, des man des net braucht...

Na zumindest ist das nach meiner Logik logisch. Was du selbst erstellt hast, solltest du auch selbst wieder freigeben. :mrgreen:

freak4fun 15. Feb 2006 15:30

Re: OOP -> Objekt frei geben
 
Zitat:

Zitat von maximus Caesar
ok, danke!
Hatte mal irgendwo anders gelesen, des man des net braucht...

Vielleicht im Zusammenhang mit Interfaces. ;)

MfG
freak

Ralf Kaiser 15. Feb 2006 15:39

Re: OOP -> Objekt frei geben
 
Zitat:

Zitat von maximus Caesar
ok, danke!
Hatte mal irgendwo anders gelesen, des man des net braucht...

Halli Hallo,

du meinst wahrscheinlich Komponenten die mit einem Owner erzeugt wurden z.B.:

Delphi-Quellcode:
MeinButton := TButton.Create(meinFormular);
Wenn der Button so erzeugt wurde, sorgt der Owner dafür, daß der Button auf wieder freigegeben wird (das gesamte Delphi-Formularstreaming basiert darauf)

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