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.


Anmelden zum Antworten