![]() |
Objektorientierte Frage
Hallo zusammen,
kann jemand mir erklären was hier im Sinne von Pointer passiert ?
Code:
ich bedanke mich !!
..
Objekt1 : TTyp1; Objekt2 : TTyp1; Objekt3 : TTyp1; .. Objekt1 := TTyp1.Create(Self); Objekt2 := Objekt1; // kopieren oder zeiger ? Objekt1.Free; // Mit Pointer verwaltet ? habe ich den Inhalt verloren ? Objekt2 := Objekt3; // Objekt3 hat nichts drinnen, habe ich den Inhalt von Objekt2 verloren ? und zeigt es auf Objekt3 ? oder wurde alles 1:1 kopiert ? LG |
AW: Objektorientierte Frage
Alles nur Zeiger .... die dann gegf. ins Nirwana zeigen.
|
AW: Objektorientierte Frage
Objekt Referenzen sind nichts anderes als typisierte Zeiger.
Delphi-Quellcode:
schreibt den Zeiger auf das zuvor erzeugte Objekt auf Objekt2.
Objekt2 := Objekt1;
Delphi-Quellcode:
gibt das zuvor erzeugte Objekt frei. Objekt1 und Objekt2 zeigen nun auf ungültigen Speicher.
Objekt1.Free;
Delphi-Quellcode:
schreibt wie bei der anderen Zuweisung den Inhalt von Objekt3 in Objekt2. Diese beinhalten aber durch das Freigeben des Objekts nur einen Zeiger auf ungültigen Speicher (du bekommst eine Zugriffsverletzung wenn du irgendwas mit Objekt1, 2 oder 3 anstellst.
Objekt2 := Objekt3;
|
AW: Objektorientierte Frage
Hallo,
Delphi-Quellcode:
1) Ein Objekt vom Typ "TTyp1" wird erstellt. die Variable Objekt1 zeigt auf dieses Objekt (Pointer)
Objekt1 : TTyp1;
Objekt2 : TTyp1; Objekt3 : TTyp1; Objekt1 := TTyp1.Create(Self); // 1) Objekt2 := Objekt1; // 2) Objekt1.Free; // 3) Objekt2 := Objekt3; // 4 2) Jetzt zeigt auch die Variable Objekt2 (Pointer) auf das eben erstellte Objekt (NICHT kopiert) 3) Das Objekt wird im Speicher zerstört. Objekt1 und Objekt2 zeigen auf eine ungültige Speicherstelle. 4) Da Objekt3 niemals initialisiert wurde zeigt Objekt3 IRGENDWOHIN. Mit großer Sicherheit auf eine ungültige Speicherstelle. Das tut der Zeiger Objekt2 danach auch. (sinnlos) |
AW: Objektorientierte Frage
(Klassen)Objekte sind Referenzen (Zeiger).
Die Zuweisung Objekt2 := Objekt1; kopiert nichts, sondern bewirkt nur, dass Objekt1 und Objekt2 die selbe Instanz referenzieren. Die Freigabe des Objekts bewirken, dass beide Instanzvariablen in Nirwana zeigen. Der letze Befehl lenkt das Objekt2 von Nirwana 1 ins Nirwana 2 um. |
AW: Objektorientierte Frage
@bummi @Stevie @Neutral General
vielen Dank Für die gleichbedeutenden Erklärungstexte ! Mein Ziel ist mehr oder weniger die Abschnitte in den nächsten Projekten effiziener fertig zu programmieren LG aus Berlin, snox |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 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