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

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

11

29.01.2011, 12:44

Im Buch steht das man Referenzen sofort initialisieren muss, auf was soll ich sie denn dann initialisieren?

Eine neue Variable erstellen oder wie xD ??

Genau. Oder eine vorhandene Benutzen.
Referenzen werden zum Beispiel als Übergabeparameter von Funktionen benutzt.
Ein Funktionsaufruf könnte also so aussehen:

C-/C++-Quelltext

1
2
CAuto car;
showDetails(&car); //hier eine Funktion, keine Methode. ;) 


Und dann der Funktionsprototyp:

C-/C++-Quelltext

1
void showDetails(const CAuto &car);


So spart man sich das kopieren des Objekts, was teilweise ein Performance Killer sein kann. Dafür hat man eine Referenz die man nicht verändern, aber zum lesen benutzen kann wie ein lokales Objekt.
Es wird zum Beispiel sehr häufig bei Kopierkonstruktoren benutzt.

12

29.01.2011, 12:46

Achsoooooooo ;D
Vielen Dank an alle die mir geholfen haben.
Thema kann geschlossen werden.
~close~
Only God can judge me.

13

29.01.2011, 13:29

Ja so ähnlich. Die Funktionsdeklaration ist richtig:

C-/C++-Quelltext

1
void showDetails(const CAuto &car);


Aber dann übergibst du der Funktion eben keine Adresse einer Variable (mit dem Adress-Operator &) sondern du gibst "wie gewohnt" die Variable an, es wird aber lediglich eine Referenz an die Funktion übergeben. Genau hier wird dann die Referenz direkt initialisiert.

Also:

C-/C++-Quelltext

1
2
CAuto car;
showDetails(car);


Gruß
SaRu_

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

14

29.01.2011, 14:06

Stimmt, ich hab da was durcheinander gewürfelt. Das ist schon etwas peinlich... ^^"

15

29.01.2011, 14:09

Danke nochmal an euch :P
Only God can judge me.

pepe1995

Frischling

Beiträge: 60

Wohnort: Warngau

Beruf: Schüler (10.)

  • Private Nachricht senden

16

31.01.2011, 14:31

ich weiß nicht wie das die anderen sehen aber

C-/C++-Quelltext

1
void Drive(CAuto *pExample)


brauchst du keinen zeiger auf ein auto zu übergeben da du die funktion als memberfunktion der klasse (innerhalb der klasse) deklarierst
wenn du es so machst deklarier außerhalb der klasse
www.4story.de
ROCKT! ;)

17

31.01.2011, 18:43

Naja passt, trotzdem danke, dass du mich darauf hingewiesen hast.
Only God can judge me.

pepe1995

Frischling

Beiträge: 60

Wohnort: Warngau

Beruf: Schüler (10.)

  • Private Nachricht senden

18

01.02.2011, 14:45

np ^^
www.4story.de
ROCKT! ;)

Werbeanzeige