158 Godzina 11
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 ( . ).
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.
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 ( .).
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.