Referencje

2016-04-28 17:29
Jacek Labudda
												

Czym są referencje?

Referencje działaniem są bardzo podobne do wskaźników. Polega to na współdzieleniu alokacji w pamięci. W momencie, gdy dwie zmienne mają ten sam adres, to nie ma znaczenia, której zmiennej wartość zmienimy, obie zmienne przyjmą tą samą wartość.

Jak stworzyć taką referencję?

Aby przekazać adres jednej ze zmiennych należy stworzyć zmienną referencyjną, którą poprzedzamy znakiem &(ampersand).
string &zmienna_referencyjna;
A przypisanie adresu innej zmiennej jest banalnie proste:
string zmienna = "Witaj "; string &zmienna_referencyjna = zmienna; //adres zmiennej został przekazany
Teraz przykład działania na zmiennej referencyjnej:
string zmienna = "Witaj "; string &zmienna_referencyjna = zmienna; zmienna_referencyjna+="swiecie!"; //edycja zmiennej referencyjnej cout << zmienna << endl;
Wynikiem takiego programu będzie wyświetlenie napisu: Witaj swiecie!

Wykorzystanie referencji w funkcjach

Możemy utworzyć funkcję, której argumentem będzie zmienna referencyjna. Funkcja pobierze wartość zdefiniowanego argumentu oraz po wykonaniu na tej zmiennej działań zmieni odpowiednio jej wartość. Przykład:
#include <iostream> using namespace std; void dodaj_tekst(string & str){ str+=" "; str+="swiecie!"; } int main(){ string str = "Witaj"; dodaj_tekst(str); //przekazanie zmiennej jako definicja argumentu funkcji cout << str << endl; //wypisanie wyniku return 0; }
Wynik: Witaj swiecie! Należy pamiętać, że referencje zwiększają ryzyko awarii programu.

Użytkownicy
Logowanie:
Zaloguj
Polub nas na facebooku
Wyszukiwanie na stronie