Gast
#5033803
Hi Leute, ich versuche mich gerade in C++ einzuarbeiten und bin auf ein Verständnisproblem gestoßen, es geht um Funktionen mit Referenz als Rückgabewert. Auch nach längerem Rumsuchen gab es keine Erhellung. Hier der Quelltext: Quelle: https://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Weitere_Grundelemente/_Referenzen #include <iostream> // gibt die Referenz des Parameters x zurück int &zahl(int &x) { return x; } int main() { int y = 3; zahl(y) = 5; std::cout << "wert: " << y; return y; } Ausgabe: wert: 5 Nach meinen Verständnis wird eine Funktion zahl() definiert, die als Eingabeparameter eine Referenz auf den Eingabeparameter beim Aufruf hat und als Rückgabewert einen int Wert liefert, wobei der Rückgabewert eine Referenz auf die interne Variable x ist. Besondern unklar ist mir die Zeile zahl(y) = 5; Ich hätte erwartet, dass man schreibt variable = zahl(y); weil zahl() ja einen Rückgabewert hat. Andererseits ist zahl() eine Referenz, also hier ein Verweis auf x. Man wollte wohl zeigen, dass zahl() wie eine Variable behandelt werden kann. Sinnfrei erscheint mir der Ausdruck zahl(y) = 5; auch deshalb, weil man auf zwei Arten auf die Funktion zahl() einwirkt, einmal übergibt man mit y einen Wert und gleichzweitig erzwingt man, das zahl(y) einen anderen Wert annimmt. konkrete Frage: wie ist zahl(y) = 5; zu verstehen? konkrete Frage: gibt es ein besseres, plausibleres Beispiel für ein Funktion mit Referenz als Rückgabewert? besten Dank für Eure Tipps. NixGegenCPP