Poznaj C++ w$ godziny0169

Poznaj C++ w$ godziny0169



158 Godzina 11

Do czego można tworzyć referencje?

Referencje można stworzyć dla dowolnego obiektu, niezależnie od tego, czy jest on standardowym obiektem C++ czy też zdefiniowanym przez użytkownika. Ważne jest, że referencja odnosi się do konkretnego obiektu, a nie do klasy. Oznacza to, że nie możesz napisać tak:

int t rlntRaf = int;    // bardzo źle!

Musisz zainicjować referencje za pomocą konkrentej zmiennej typu int:

int jakDuzy = 200; int & rlntRef = jakDuzy;

Podobnie rzecz się ma z obiektami zdefiniowanymi przez użytkownika. Nie można napisać tak:

KOT & rKotRef = KOT;    JI znowu źle!

Tutaj, podobnie jak w przypadku zmiennej całkowitej, musisz zainicjować referencję za pomocą konkretnego obiektu klasy KOT:

KOT Frisky;

KOT S rKotRef = Frisky;

Referencje do obiektów wykorzystuje się tak, jak obiekty. Dane i funkcje wewnętrzne dostępne są z wykorzystaniem operatora dostępu do klasy - kropki ( . ).

Puste (nuli) wskaźniki i puste (nuli) referencje

Kiedy wskaźnik jest niezainicjowany lub ewentualnie skasowany za pomocą delete, to powinna być my przypisana wartość nuli (0). Ta reguła nie obowiązuje w przypadku referencji. Referencja nie może być pusta (nuli). Program, w którym znajdują się referencje do obiektów nuli jest błędny i jego działanie jest nieprzewidywalne. Może on działać pozornie prawidłowo, lecz w pewnym momencie może np. niespodziewanie skasować wszystkie zbiory na dysku.

Większość kompilatorów honoruje puste obiekty. Problemy pojawiają się jedynie przy próbie wykonania operacji na takich obiektach. Pamiętaj jednak, że w takiej sytuacji, próba przeniesienia programu pod inny kompilator lub na inną maszynę może skończyć się niepowodzeniem jeśli to inne środowisko nie zezwala na istnienie pustych (nuli) obiektów.

Do czego można tworzyć referencje?

Referencje można stworzyć dla dowolnego obiektu, niezależnie od tego, czy jest on standardowym obiektem C++ czy też zdefiniowanym przez użytkownika. Ważne jest, że referencja odnosi się do konkretnego obiektu, a nie do klasy. Oznacza to, że nie możesz napisać tak:

int & rlntRef = int;    // bardzo żle!

Musisz zainicjować referencje za pomocą konkrentej zmiennej typu int:

int jakDuzy = 200;

int & rlntRef = jakDuzy;

Podobnie rzecz się ma z obiektami zdefiniowanymi przez użytkownika. Nie można napisać tak:

KOT & rKotRef = KOT;    // znowu żle!

Tutaj, podobnie jak w przypadku zmiennej całkowitej, musisz zainicjować referencję za pomocą konkretnego obiektu klasy KOT:

KOT Frisky;

KOT & rKotRef = Frisky;

Referencje do obiektów wykorzystuje się tak, jak obiekty. Dane i funkcje wewnętrzne dostępne są z wykorzystaniem operatora dostępu do klasy - kropki ( .).

Puste (nuli) wskaźniki i puste (nuli) referencje

Kiedy wskaźnik jest niezainicjowany lub ewentualnie skasowany za pomocą delete, to powinna być my przypisana wartość nuli (0). Ta reguła nie obowiązuje w przypadku referencji. Referencja nie może być pusta (nuli). Program, w którym znajdują się referencje do obiektów nuli jest błędny i jego działanie jest nieprzewidywalne. Może on działać pozornie prawidłowo, lecz w pewnym momencie może np. niespodziewanie skasować wszystkie zbiory na dysku.

Większość kompilatorów honoruje puste obiekty. Problemy pojawiają się jedynie przy próbie wykonania operacji na takich obiektach. Pamiętaj jednak, że w takiej sytuacji, próba przeniesienia programu pod inny kompilator lub na inną maszynę może skończyć się niepowodzeniem jeśli to inne środowisko nie zezwala na istnienie pustych (nuli) obiektów.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0010 Spis treści    ix 11    Referencje
Poznaj C++ w$ godziny0215 206Godzina 14 W liniach 34-37 kasowane i odtwarzane są wewnętrzne zmienne
IMG324 Stosując równanie komfortu cieplnego można obliczyć dla dowolnego rodzaju czynności
Ile kont o jednakowej nazwie można stworzyć w eDirectory? O Dowolny liczbę nawet w tym samym kontene
Poznaj C++ w$ godziny0021 Zaczynamy 5 Sumowanie zarobków można z kolei rozłożyć na: 1.   &
Poznaj C++ w$ godziny0025 Zaczynamy 9Kompilacja i łączenia kodu źródłowego Plik źródłowy można nazwa
Poznaj C++ w$ godziny0030 14 Godzina 1 P: Czy można ignorować ostrzeżenia kompilatora (wamings) O: W
Poznaj C++ w$ godziny0043 Zmienne i stałe 27Definiowanie zmiennych Zmienne tworzy się i definiuje si
Poznaj C++ w$ godziny0079 Funkcje 65Funkcje jako parametry innych funkcji Mimo że można używać funkc
Poznaj C++ w$ godziny0109 96 Godzina 7 Umieszczanie deklaracji klas w plikach nagłówkowych Mimo że d
Poznaj C++ w$ godziny0112 Więcej o klasach 99Klasy wykorzystujące inne klasy jako dane wewnętrzne Ba
Poznaj C++ w$ godziny0143 132 Godzina 9 Teraz pWiek przechowuje adres zmiennej wiek równej 50. Ten s
Poznaj C++ w$ godziny0160 Zaawansowane wykorzystanie wskaźników 149Do czego służy wskaźnik this Gdyb
Poznaj C++ w$ godziny0203 194 Godzina 13Pytania i odpowiedzi P: Dlaczego wymyślono wartości domyślne
Poznaj C++ w$ godziny0204 Przeciążanie operatorów W poprzednim rozdziale nauczyłeś się przeciążać me
Poznaj C++ w$ godziny0219 210 Godzina 14Pytania i odpowiedzi P: Po co przeciążać operator skoro możn
Poznaj C++ w$ godziny0001 Gdy masz czas tylko na właściwe rozwiązania... Intersoftlcind Gdy masz cza
Poznaj C++ w$ godziny0002 Jesse LibertyC++w 2 4 godziny Tłumaczenie: Grzegorz MichałekInlersofllond

więcej podobnych podstron