Referencja

0

Witam. Kiedys przecztalem ze referencja to tak jakby staly wskaznik, moze inicjalizowac i nie mozna ustawic na nic innego. Jakim cudem wiec kod

int i=10,j=20;
int &ref_int=i;
ref_int=j;

kompiluje sie bez bledow? A moze cos zle przeczytalem lub zle pamietam?

0

gratulacje, wlasnie ustawiles i = ref_int = 20 [browar]

1

anom, jak poprzednik napisal.. ustawiles ref_int lub i na 20
w sumie mozna o tej &referencji myslec jako o innej nazwie na ta sama zmienna
tj int a = 10, &b = a, &c = a, j = 20;
a = 11; zmieni a na 11
b = 12; zmieni a na 12
c = 13; zmieni a na 13
b = j; zmieni a na wartosc j, czyli 20
zmienna ktora jest zlinkowana z referencja musi byc podana przy inicjalizacji, NIE mozna zrobic tego pozniej, tj
int a, &b;
b = a;
nie przejdzie
kompilator wyrzuci cos w stylu
``b' declared as reference but not initialized`
czyli po inicjalizacji b staje sie druga-nazwa na a, i juz nie mozna tego "linkowania" zmienic...

0
int &ref_int=i;
void sth(int& a){}

Gdzieś tą referencję trzeba ustawić, a to są jedyne miejsca, w którym to możesz zrobić.

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