Referencje 157
Referencje 157
23; |
cout « ” | |
24: |
cout « " | |
25: |
return 0; | |
26: |
) |
SintDwa:\t" « SintDwa « endl; SrReferencja:\t" « SrReferencja « endl;
intJeden: |
5 |
rReferencja: |
5 |
SintJeden |
0x213e |
SrReferencja: |
0x213e |
intJeden: |
8 |
intDwa: |
8 |
rReferencja: |
8 |
SintJeden: |
0x213e |
SintDwa: |
0x2130 |
SrReferencja: |
0x213e |
ANALIZA:
W liniach 8 i 9 deklarujemy zmienną całkowitą i referencję do niej. W linii 11 zmiennej przypisujemy wartość 5. W liniach 12—15 wypisujemy wartości zmiennych i ich adresy.
W linii 17 tworzona i inicjowana jest nowa zmienna intDwa. Zwróć uwagę na linię 18. Programista chciał zmienić znaczenie referencji rReferencja i przypisać jej nowy obiekt docelowy - intDwa. Rezultat tej operacji jest inny niż zamierzony. rReferencja nadal jest powiązana ze zmienną intJeden, lecz zmianie uległa wartość, która jest teraz równa 8. Przypisanie w linii 18 jest równoważne takiemu: intJeden = intDwa;
Zmiana wartości zmiennej intJeden potwierdza, że znaczenie referencji nie uległo zmianie. Potwierdza to również analiza adresów wypisywanych w liniach 22—24. Widać, rReferencja nadal ma adres równy adresowi intJeden.
ZAWSZE |
NIGDY |
Zawsze wykorzystuj referencje, gdy chcesz stworzyć odnośnik do obiektu. Zawsze inicjalizuj referencje. |
Nigdy nie staraj się zmienić obiektu docelowego referencji. Nigdy nie myl operatora adresu z operatorem referencji. |
SintDwa:\t" « SintDwa « endl; SrReferencja:\t" « SrReferencja « endl;
23; |
cout « " | |
24 ; |
cout « " | |
25; |
return 0; | |
26: |
ł |
EFEKT DZIAŁANIA:
intJeden: |
5 |
rReferencja: |
5 |
SintJeden |
0x213e |
SrReferencja: |
0x213e |
intJeden: |
8 |
intDwa: |
8 |
rReferencja: |
8 |
SintJeden: |
0x213e |
SintDwa; |
0x2130 |
SrReferencja: |
0x213e |
ANALIZA:
W liniach 8 i 9 deklarujemy zmienną całkowitą i referencję do niej. W linii 11 zmiennej przypisujemy wartość 5. W liniach 12-15 wypisujemy wartości zmiennych i ich adresy.
W linii 17 tworzona i inicjowana jest nowa zmienna intDwa. Zwróć uwagę na linię 18. Programista chciał zmienić znaczenie referencji rReferencja i przypisać jej nowy obiekt docelowy - intDwa. Rezultat tej operacji jest inny niż zamierzony. rReferencja nadal jest powiązana ze zmienną intJeden, lecz zmianie uległa wartość, która jest teraz równa 8. Przypisanie w linii 18 jest równoważne takiemu:
intJeden = intDwa;
Zmiana wartości zmiennej intJeden potwierdza, że znaczenie referencji nie uległo zmianie. Potwierdza to również analiza adresów wypisywanych w liniach 22—24. Widać, rReferencja nadal ma adres równy adresowi intJeden.
ZAWSZE |
NIGDY |
Zawsze wykorzystuj referencje, gdy chcesz stworzyć odnośnik do obiektu. Zawsze inicjalizuj referencje. |
Nigdy nie staraj się zmienić obiektu docelowego referencji. Nigdy nie myl operatora adresu z operatorem referencji. |