Poznaj C++ w$ godziny0168

Poznaj C++ w$ godziny0168



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.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0172 Referencje 161 Referencje 161 18 { 19 int temp; 20 21 cout «
Poznaj C++ w$ godziny0166 Referencje 155 Referencje 155 ANALIZA: W linii 8 deklarujemy zmienną lokal
Poznaj C++ w$ godziny0170 Referencje 159Przekazywanie argumentów funkcji przez referencje W trakcie
Poznaj C++ w$ godziny0174 Referencje 163 Linie 24-26 zamieniają wartości. Efekt zamiany wypisywany j
Poznaj C++ w$ godziny0176 Referencje 165 Funkcja Potęgi () sprawdza poprawność parametru przekazaneg
Poznaj C++ w$ godziny0196 Zaawansowane funkcje 187 53:    } 54:    cou
Poznaj C++ w$ godziny0245 Dziedziczenie 237 43:    void ProsOJedzenie() { cout « &quo
Poznaj C++ w$ godziny0076 62Godzina 5 A oto kilka poprawnych definicji: long Pole(long d, long s){ r
Poznaj C++ w$ godziny0087 Funkcje 73 27:    int RazyDwa(int zrodło) 28: { 29:  &
Pytanie 19: Pytanie 20: Pytanie 21: Pytanie 22: Pytanie 23: Pytanie 24: Pytanie 25: P
2 2 Nazwa / Nazwisko, Imię (Imiona) Miejsce zamieszkania / Siedziba i adres 23. Kraj 24. Miejscowość
043 2 Sekcja 20 -Sekcja 21 -Sekcja 22 -Sekcja 23 -Sekcja 24 -Sekcja 25 -Sekcja 26 -Sekcja 27 -Sekcja
CCF20111005023 58 58 Art. 23. : Art. 24.s Art. 25.: Art. 26.: Art. 27.: Art. 28. : Art. 29. : Art.
QT 23 QT 24 QT 25 QT 26 QT 26.5 QT 27 QT 28 QT 29 QT 32 QT 32.1 QT 33 QT 33.1 QT 34 (używa
(używane w monografiach i seriach) QW 23 QW 24 QW 25 QW 25.5 QW 25.5. B2 QW 25.5.M6 QW 25.
WO 22 WO 22.1 WO 23 WO 24 [WO 25] [WO 26] WO 27 WO 27.1 WO 28 WO 28.5 WO 28.6 WO 32 WO 32.1&nbs
p0064 61 22. Niedziela 23. PoniedziałekKwiecień 24. Wtorek 25. Środa 26. Czwartek 27. Piątek 28.
p0068 20. Niedziela 21. Poniedziałek 22. Wtorek I - 23. Środa I 24. Czwartek 25. Piątek 26. Sobota
9 3 Ycs - 23) No - 24) No - 25) Ycs - 26) No - 27) Ycs - 28) No - 29) Ycs - 30) 

więcej podobnych podstron