AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OOP -> Objekt frei geben

Ein Thema von maximus Caesar · begonnen am 15. Feb 2006 · letzter Beitrag vom 15. Feb 2006
Antwort Antwort
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#1

OOP -> Objekt frei geben

  Alt 15. Feb 2006, 14:22
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)?
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#2

Re: OOP -> Objekt frei geben

  Alt 15. Feb 2006, 14:26
Im Destruktor des Objektes solltest du logischerweise alle Unterobjekte freigeben.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: OOP -> Objekt frei geben

  Alt 15. Feb 2006, 14:27
ok, danke!
Hatte mal irgendwo anders gelesen, des man des net braucht...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: OOP -> Objekt frei geben

  Alt 15. Feb 2006, 14:29
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 ).
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

Re: OOP -> Objekt frei geben

  Alt 15. Feb 2006, 14:30
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.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: OOP -> Objekt frei geben

  Alt 15. Feb 2006, 14:30
Zitat von maximus Caesar:
ok, danke!
Hatte mal irgendwo anders gelesen, des man des net braucht...
Vielleicht im Zusammenhang mit Interfaces.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: OOP -> Objekt frei geben

  Alt 15. Feb 2006, 14:39
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.:

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
Ralf Kaiser
  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 01:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz