AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Variablenzuweisung, wann kopie, wann verknüpfung
Thema durchsuchen
Ansicht
Themen-Optionen

Variablenzuweisung, wann kopie, wann verknüpfung

Ein Thema von empanyc · begonnen am 15. Feb 2004 · letzter Beitrag vom 15. Feb 2004
 
Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Variablenzuweisung, wann kopie, wann verknüpfung

  Alt 15. Feb 2004, 16:29
Zitat:
Wie bekomme ich denn "korrekt" eine Kopie eines Objekts?
Das ist einfach : garnicht - zumindest nicht out of the box. Im Gegensatz zu C++ kennt ObjectPascal keinen Copy-Constructor. Bei Nachfahren von TPersistent gibt es allerdings eine standardisierte Methode, den Inhalt von einer Klasse in die nächste zu schieben. Bei eigenen Nachfahren muss die allerdings erstmal implementiert werden.

Zitat:
Soll also heißen, wenn der Befehl "daten := daten2;" ausgeführt worden ist und
ich danach einen von beiden eine neue Größe mit "setlength" zuweise,
werden beide eigenständig?
Ja

Zitat:
Des würde ja bedeuten, dass ich mit "daten" aus dem Beispiel nur die Einträge
verändern könnte aber sobald ich etwas an der Größe ändere, wird "daten"
eigenständig?
Ja leider. Beispiel :

Delphi-Quellcode:
var
  daten, daten2 : Array of Integer;
begin
  //...
  daten2 := daten;
  daten[0] := 12; // daten[0] und daten2[0] sind 12
  ...
  SetLength(daten,Length(daten));
  daten[1] := 12; // daten[1] ist 12 , daten2 wurde nicht geändert
  ...

meiner Einschätzung nach eine wirklich unschöne Inkonsistenz der dynamischen Arrays,
die in krassem Widerspruch zum Verhalten statischer Arrays auf der einen und der durchgängigen
Copy-on-Write-Semantik bei langer Strings auf der anderen Seite steht.

Bernd
Bernd Ua
  Mit Zitat antworten Zitat
 


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 13:33 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