Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[C++] Was bedeutet das & hinter einem Variablennamen?
PacMani
Unregistered

 
Beitrag #1
[C++] Was bedeutet das & hinter einem Variablennamen?
Entweder verschluckt Google Suchbegriffe wie "&", "and" und "und", oder ich bin zu alt für Suchmaschinen.

Ich bin letztens auf folgende Syntax bei der Übergabe von Parametern an eine Funktion gestoßen:
float machwas(const klasse& bla)

Ich kenne den &-Operator nur im Sinne von "Adresse der Variablen x" wenn man ihn in der Syntax "&x" benutzt.
Aber wieso setzt man hier ein & hinter eine Klasse? Konnte in meinem Lehrbuch nichts finden.
06.12.2010 17:25
Diese Nachricht in einer Antwort zitieren
freaked Offline
× ∫яεαкεδ εησυġн × ζιgнтѕтαя ×

Beiträge: 17.046
Registriert seit: Jul 2008
Beitrag #2
[C++] Was bedeutet das & hinter einem Variablennamen?
Pac-Man schrieb:  Entweder verschluckt Google Suchbegriffe wie "&", "and" und "und", oder ich bin zu alt für Suchmaschinen.

einfach ein + davor setzen, dann wirds mitgesucht

06.12.2010 17:31
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #3
[C++] Was bedeutet das & hinter einem Variablennamen?
Wirklich eine Funktions-Definition die so aussieht: float machwas(const klasse& bla) ?
Weil das macht in meinem beschränkten C++-Wissen keinen Sinn, aber

Ich kenne den &-Operator jenseits von Adressen nur als als binäre Verundung.

int i = 12 & 10; // = 8
/* weil 1100 (12) & 1010 (10) = 1000 (8) */


Ich Idiot. Bei C++ ist Datentyp& eine Referenz des Datentypen. Heisst in deinem Beispiel, dass innerhalb von machwas() die Variable bla nur eine Referenz auf ein Objekt der Klasse klasse ist, nicht eine Kopie. Rufst du machwas(myBla) auf, dann werden alle Veränderungen, die machwas() an bla ausführt, in myBla gemacht.

Siehe: http://en.wikipedia.org/wiki/Reference_%28C%2B%2B%29
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2010 17:37 von gandro.)
06.12.2010 17:31
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
oreissig Offline
Maître Modérateur

Beiträge: 12.021
Registriert seit: Jul 2008
Beitrag #4
[C++] Was bedeutet das & hinter einem Variablennamen?
das const & ist ein konstrukt, was die sicherheit von übergabe by value (kann im hauptprogramm nich geändert werden, weil const) und performance von übergabe by reference (keine kopie, da &) verbindet. insbesondere letzteres ist bei Objekten halt durchaus ein schlagkräftiges argument, weil sowas zu kopieren sehr viel aufwändiger ist als nur nen einfachen integer

EDIT: bezüglich der platzierung vom & kann ich spontan zu genau diesem fall nix sagen, aber ich kenns vom *, dass es wurst ist, ob man int* bla oder int *bla schreibt
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2010 17:38 von oreissig.)
06.12.2010 17:34
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
PacMani
Unregistered

 
Beitrag #5
[C++] Was bedeutet das & hinter einem Variablennamen?
Wunderbar, jetzt ist mir alles kar. Ihr seid doch noch die beste Suchmaschine *scherzkeks*.
06.12.2010 17:52
Diese Nachricht in einer Antwort zitieren
s4ndwichMakeR Offline
Realitätsfeinmotoriker‮

Beiträge: 5.195
Registriert seit: Jul 2008
Beitrag #6
[C++] Was bedeutet das & hinter einem Variablennamen?
Pac-Man schrieb:  Entweder verschluckt Google Suchbegriffe wie "&", "and" und "und", oder ich bin zu alt für Suchmaschinen.
c++ ampersand - Google-Suche?

• • • – • – – • – –
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2010 19:23 von DosAmp.)
06.12.2010 18:06
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste