Podręcznik
6. Funkcje
6.4. Funkcje z referencjami jako parametry.
Przekazywanie parametrów przez referencję w C++ to technika, która pozwala na efektywne przekazywanie zmiennych do funkcji bez konieczności ich kopiowania. Dzięki temu modyfikacje dokonane na parametrach w funkcji mają bezpośredni wpływ na oryginalne zmienne, które zostały przekazane jako argumenty. Aby zademonstrować przekazywanie parametrów przez referencję możemy wrócić do przykładu zademonstrowanego w poprzednim podrozdziale (Funkcje z parametrami), który miał na celu pokazać, że parametry są domyślnie przekazywane przez wartości.
#include <iostream>
using namespace std;
void zwieksz(int a){
a++;
}
int main() {
int x = 1;
zwieksz(x);
cout<<"Wartosc zmiennej x="<<x<<endl;
return 0;
}
Deklaracja parametrów przekazywanych przez zmienną jest podobna do deklaracji parametrów przekazywanych przez wartość. Aby poinformować kompilator, że chodzi o referencję do zmiennej, a nie o nową zmienną - umieszcza się przed nazwą zmiennej znak ampersand &:
typ_zwracany nazwa (typ_p1 &p1, typ_p2 &p2, ..., typ_pn &pn);
gdzie p1, p2 ... są nazwami parametrów odpowiednich typów.
int& parametr
oraz
int ¶metr
są sobie zupełnie równoważne (przynajmniej w przypadku deklaracji listy parametrów funkcji).