Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objekte Zeiger Destruktoren (https://www.delphipraxis.net/8150-objekte-zeiger-destruktoren.html)

Minz 29. Aug 2003 13:28


Objekte Zeiger Destruktoren
 
Hallo,

ich hätte da mal ne Frage zu Objekten, bzw. mehrere Fragen.

Code:
objekt1: TAutoListe;
objekt2: TAuto;

objekt1:=TAutoListe.create;
...
objekt2:=objekt1.Auto[2];
Sooo... :mrgreen: wenn ich jetzt objekt2.free aufrufe, ist die Instanz in Auto[2] dann auch weg?

Wie ist das wenn ich stattdessen sage:

Code:
TGarage=class
  public
    stellplatz: TAuto;
...

objekt1: TAutoListe;
objekt2: TGarage;

objekt2.stellplatz:=objekt1.Auto[2];
Welche Objekte werden nun bei objekt2.free gelöscht?

Hoffe das war nicht zuviel auf einmal :mrgreen:

neolithos 29. Aug 2003 13:45

Re: Objekte Zeiger Destruktoren
 
Zitat:

Sooo... wenn ich jetzt objekt2.free aufrufe, ist die Instanz in Auto[2] dann auch weg?
Ja, da object2 nur auf Auto[2] zeigt und keine Instance davon ist, wie bei Schnittstellen.

Das zweite solltes du daran selber ergründen können.

Minz 29. Aug 2003 13:52

Re: Objekte Zeiger Destruktoren
 
Wenn du jetzt gesagt hättest:

Nein, weil Objekt2 nur ...

dann wäre ich mir sicher gewesen, was du meinst :mrgreen:

Jens Schumann 29. Aug 2003 14:08

Re: Objekte Zeiger Destruktoren
 
Hallo Minz,
in beiden Fällen wird das Objekt in objekt1.Auto zerstört.
Beide Objekte zeige auf die gleiche Adresse im Heap.
In der VCL wird diese Problem mit der Assign Methode gelöst.
Schau doch mal in die Delphi-Hilfe

Minz 29. Aug 2003 14:10

Re: Objekte Zeiger Destruktoren
 
Ahso ist das! Danke! :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13: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