Copy-Konstruktor??
-
Hallo Leute, wozu braucht man einen copy Konstruktor?
Vielen Dank
-
Um Objekte korrekt zu kopieren. Siehe: http://www.c-plusplus.net/forum/viewtopic-var-t-is-159615.html
-
Man beachte bitte auch die Regel der großen Drei
BR
Vinzenz
-
Sorry der erste Link hilft ma nicht weiter, bin viell zu unkonzentriert.
Wieso sollte ich Kopien von Objekten erstellen wollen?
Vielen Dank
-
Hi!
z.B. deshalb:
class foo { // ... }; // ... void somefunction( foo bar ) // hier wird eine kopie vom übergebenen objekt erstellt { // do something with bar }
Sollte die Klasse Foo nun diverse Zeiger haben werden diese, ohne Copy C'tor, einfach "flach" Kopiert. D.h. die Zeigeradresse wird kopiert, das gezeigte Objekt wird aber nicht dupliziert.
Also zeigen beide Objekte, das Orginal und die Kopie, auf den gleichen Speicherbereich und das kann zu den tollsten Problemen führen:foo::~foo() { delete pointee; // pointee ist eine membervariable von foo }
Sobald der D'tor aufgerufen wird, wird der Speicher freigegeben. D.h. wenn irgendeine Kopie des Orginalobjekts den zerstört wird zeigen alle anderen Instanzen ins Nirvana.
grüße