Przekazanie wartości do funkcji, która przyjmuje referencję.

0

Witajcie,

Mam pewną funkcję np:

void foo(std::string& text)

Jeśli chicałbym ją wywołać foo("jakis sobie tekst")

 to kompilator tego nie przepuści. Trzeba by przed funkcją stworzyć zmienną i przypisać jej wartość, którą bym przekazał "przez nazwę zmiennej", tak się da, ale nie wygląda to ładnie. Czy jedynym wyjściem jest przekazywanie jako wskaźnik zamiast przez referencję?
1
void foo(std::string & text);
void foo(std::string text); 
1
foo(std::string("jakis sobie tekst"));
1

Na początku odpowiedz sobie na pytanie: po co chcesz to przekazać jako niestałą referencję?
Jedyna sensowna odpowiedź to: bo chcę zmodyfikować ten parametr. Wtedy przekazanie do tego literału nie ma najmniejszego sensu.

Skoro chcesz przekazać literał, to znaczy że nie chcesz tego parametru modyfikować. No to przekaż parametr jako const string& i po problemie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1