Parametry przez referencję w C++

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

W C++ parametr przekazany przez referencję pozwala funkcji pracować bezpośrednio na oryginalnej zmiennej, a nie na jej kopii. Oznacza się go znakiem & przy typie parametru.

Składnia

void funkcja(int &x) {
    x = 10;
}

Parametr int &x oznacza, że x jest referencją do zmiennej przekazanej podczas wywołania funkcji.

Przykład:

int a = 5;
funkcja(a);
cout << a; // wypisze 10

Wartość zmiennej a została zmieniona wewnątrz funkcji.

Przekazanie przez wartość a przez referencję

Przekazanie przez wartość tworzy kopię:

void zmien(int x) {
    x = 10;
}

Po wywołaniu tej funkcji oryginalna zmienna się nie zmieni.

Przekazanie przez referencję:

void zmien(int &x) {
    x = 10;
}

zmienia oryginalną zmienną.

Przykład zamiany wartości

void zamien(float &x, float &y) {
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}

Dzięki referencjom funkcja może zamienić wartości dwóch zmiennych przekazanych jako argumenty. Gdyby parametry nie były referencjami, zamiana dotyczyłaby tylko lokalnych kopii, a zmienne poza funkcją pozostałyby bez zmian.