Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

13.02.2004, 18:27

Und noch eine Frage :-)

Huhu ich bin es schon wieder

im umgang mit c++ kam öfters das wort kopierkonstruktor vor. Ist ein kopierkonstruktor dafür da, wenn ich eine klasse/struktur mit dynamischen variablen hab, dass die variablen nicht gelöscht werden beim kopiervorgang??

in hoffnung der dude :-)

2

13.02.2004, 18:33

ein kopier konstruktor erstellt schlicht und einfach eine Kopie der derzeitigen instanz:

Quellcode

1
2
3
4
5
6
test::testd(const test& copy) // Kopier(Copy) Konstruktor
{
   // Hierkopieren
    this.a = copy.a;
//...
}
Do, ut des!
Ceterum censeo, carthaginem delendam esse

Anonymous

unregistriert

3

13.02.2004, 18:50

das ist mir ja alles klar, aber wieso kann man selber welche schreiben?? macht das überhaupt sinn???

das meinste ich
srry für mein undeutliches ausdrücken

mfg der dude ;-)

Jumping Jack

Treue Seele

Beiträge: 142

Wohnort: Hamburg

Beruf: Schüler

  • Private Nachricht senden

4

13.02.2004, 19:32

weil die standardcopyc'tors nicht alles kopieren.
Wenn du in der klasse dynamisch speicher alloziierst kann der compiler ja nicht wissen ob nur der zeiger oder auch der speicherbereich auf den der zeiger zeigt kopiert werden sollen.

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

5

13.02.2004, 21:23

@der dude:
Du kannst dir ja 'ne Klasse mit 'nem c-string als member vorstellen. Für den Computer ist diese Variable ja nichts anderes als eine ADRESSE und wenn die kopiert wird, dann greift die kopierte Instanz ja auf den gleichen Speicherbereich zu wie die originale. Eben wie "Jamping Jack" schon sagte:
Adressen werden kopiert, nur nicht ihr Speicherbereich!
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

6

13.02.2004, 21:55

Darum kann man einen Kopierkonstruktor selber erstellen, damit man eine Tiefe kopie erstellen kann. Also den Inhalt eines Dynamisch reservierten Speicherbereiches zu kopieren statt nur seine Adresse.


PS: Der Automatisch generierte Kopierkonstruktor macht immer nur eine Flache kopie. Sprich es werden die Adressen kopiert und nicht deren Inhalt, bei dynamisch reserviertem Speicher.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

7

19.02.2004, 20:06

Vielen dank,
ich bin leider erst jetzt zu der antwort gekommen, da einige Klausuren anstanden. nehmt es mir nicht übel - vielen dank noch mal


mfg
der dude :-)

Werbeanzeige