Referenz Übergabe abkürzen?
-
Hallo, ich hab eine Funktion geschrieben die ein String umdreht. Geht auch so.
void reverse(string& org) { string neu; for (size_t i = org.length(); i > 0 ;i--) { neu += org[i-1]; } cout << "rev:" << neu << endl; org = neu; } int main() { string s("hallo welt"); string& ref = s; reverse(ref); cout << s << endl; return 0; }Aber ich wollte mal fragen ob ich die Erzeugung einer Referenz auch in dem Funktionsaufruf machen kann. Also sozusagen statt:
string s("hallo welt"); string& ref = s; reverse(ref);string s("hallo welt"); reverse(s);So geht es natürlich nicht weil s ja keine Referenz ist aber muss ich da extra ne Referenzvariable anlegen und die übergeben oder geht das kürzer?
-
Mike09898 schrieb:
string s("hallo welt"); reverse(s);genau so geht es, die referen wird dann erst in der funktion angelegt
-
Ja stimmt Danke, hatte vorhin irgendwelche Fehler aber muss an etwas anderem gelegen haben.
-
Vermutlich daran, daß du noch weiter abkürzen wolltest zu
reverse("Hallo Welt");- das funktioniert nämlich nicht, bzw. nur wenn die Funktion eine const-Referenz erwartet.