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

1

07.01.2012, 13:52

Kopierkonstruktor

Hey, ich bin nun bei dem Kopierkonstruktor angelangt. Daraufhin habe ich mir das Listing zurecht gecodet um zu sehen was passiert.
Ich bin etwas verwirrt. Ich dachte, dass man vor eine Referenz kein * braucht um den Wert auszugeben, jedoch ist das hierbei anders:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CRaumschiff::CRaumschiff (const CRaumschiff &rhs)
{
    cout << "Kopierkonstruktor wurde aufgerufen.";
    cout << endl << endl;

    // Tiefe Kopie
    m_pGeschwindigkeit = new int;
    *m_pGeschwindigkeit = 2000;

    cout << *m_pGeschwindigkeit << endl;
    cout << *rhs.m_pGeschwindigkeit << endl << endl;

    cout << &rhs.m_pGeschwindigkeit << endl;
    cout << &m_pGeschwindigkeit << endl << endl;

    cout << rhs.m_pGeschwindigkeit << endl;
    cout << m_pGeschwindigkeit << endl << endl;

    *m_pGeschwindigkeit = *rhs.m_pGeschwindigkeit;
    cout << *m_pGeschwindigkeit << endl << endl;
} // Kopierkonstruktor

In der 3. letzten Zeile wird vor die Referenz ein Sternchen gesetzt, wieso?
Hat es etwas damit zu tun, dass der Wert einem Zeiger zugeschrieben wird?
Danke für eure Antworten!
Only God can judge me.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

07.01.2012, 14:03

Das hat nichts mit der Referenz zu tun, sondern mit dem auf was du da zugreifst. m_pGeschwindigkeit ist ja ein Zeiger und den möchtest du ja kopieren und daher musst du da dereferenzieren um an den Wert zu gelangen.

3

07.01.2012, 14:06

Achso stimmt okey. Danke!
Verstehe.
Only God can judge me.

Werbeanzeige