Classenvariablen kopieren
-
Hallo.
Folgender Code:TClass *Class = new TClass; TClass *Class2 = new TClass; Class->Value1 = 5; Class2 = Class; //Hier wird nicht die eigenschaften kopiert.Wie kann ich nun erreichen, das die gesamten Variablen von Class nach Class2 Kopiert werden und nicht nur der Pointer verändert wird ?
MfG
-
Hallo
du must den Zuweisungsoperator überladen. Steht in jeden guten Tutorial über C++ Grundlagen in OOP.
bis bald
akari
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hans M. schrieb:
Wie kann ich nun erreichen, das die gesamten Variablen von Class nach Class2 Kopiert werden und nicht nur der Pointer verändert wird ?
*Class2 = *Class;
-
MFK schrieb:
Hans M. schrieb:
Wie kann ich nun erreichen, das die gesamten Variablen von Class nach Class2 Kopiert werden und nicht nur der Pointer verändert wird ?
*Class2 = *Class;
Das klappt nicht immer! Besonders nicht ohne Assignment-Operator, denn dann weiß der Compiler nicht, was er damit soll. (Jedenfalls die guten Compiler
)Gruß Mea
-
@ Meaculpa
Das klapt immer. Gibt sowas wie einen Standardzuweisungsoperator.Dieser hat allerdings kleinere Schwierigkeiten, wenn das Objekt, dass zugewiesen werden soll mit new angelegte Objekte verwaltet, dann werden nämlich nur die Zeiger kopiert und somit die gehaltenen Objekte ungünstigerweise im Normalfall mehrfach freigegeben...
-
Meaculpa schrieb:
Das klappt nicht immer! Besonders nicht ohne Assignment-Operator,
Es gibt immer einen Zuweisungsoperator. Ob der tut, was Hans M. will, ist die Frage.
denn dann weiß der Compiler nicht, was er damit soll. (Jedenfalls die guten Compiler
)Es ist klar definiert, was der Compiler mit diesem Ausdruck tun soll. Und ich kenne keinen, der so schlecht ist, dass er das nicht hinbekommt.