# DRINGEND: Wie kann ich ein Objekt kopieren?



## kette25 (13. Januar 2009)

Hallo, ich hatte diese Frage schon einmal gestellt, leider ohne Antwort 
War aber vieleicht auch zwischen den Tagen etwas ungünstig ...  

Deswegen hier noch mal meine Frage, wie man Objekte kopiert:

mit welcher syntax kann ich ein benutzerdefniertes objekt kopieren?
Wenn ich eine einfache Variable habe, z.B. integer, dann geht das ja über "="
z.B. var1=var2

Aber wie muss ich bei einem Object vorgehen?

Beispiel:
Ich habe eine benutzerdefnierte Klasse class1 erzeugt mit einigen Eigenschaften.

in Programm selber definiere ich dann zwei objects:
dim obj1 as class1
dim obj2 as class1

'Initialisierung
set obj1 = new class1

'dann einige Eigenschaften in obbj1 festlegen
'.....

'jetzt möchte ich, dass das obj2 die gleichen Eigenschaften wie obj1 erhält
'also quasi obj2=obj1

'wie muss die Syntax sein? Geht das in VB 6.0 überhaupt?

Die gleiche Fragestellung ergibt sich auch für Felder (arrays). Kann ich ein Feld direkt kopieren und geht das nur, in dem ich jeden Eintrag einzeln kopiere?

Ein Tip wäre sehr hilfreich.

Vielen Dank.


----------



## Nico Graichen (13. Januar 2009)

Hi

Die sauberste Variante wäre die Implementierung eine Copy-Konstruktors. Ich weiß jedoch nicht, ob VB so was kennt. Dieser nimmt als Parameter das Quell-Objekt und schreibt die Werte in das neue Objekt

eine weitere Variante eine Clone-Methode, welche ebenfalls das Quell-Objekt übernimmt, eine neue Instanz mit dessen Werten erstellt und das neue Objekt zurückliefert.


----------



## kette25 (13. Januar 2009)

Hi Nico.
Danke für die Rückmeldung.
So einen allgemeinen Konstruktor zu programmieren stelle ich mir schon recht aufwendig vor.

Vom Clonen habe ich auch schon was gelesen, habe es aber so verstanden, dass es dabei um das Clonen einer ganzen Klasse geht, und nicht eines einzelnen Objektes.

Ich wundere mich bloß, dass das so kompliziert ist, da ich gedacht habe, dass das kopieren von irgendwelchen Variablen, Feldern, Objekten doch eine grundlegende Sache beim Programmieren sein muss.
Anscheinend bin ich da völlig auf dem falschen Dampfer.

Aber Danke totzdem.

-----
Florian


----------

