• Kurs C++ - strona główna
  • Kurs C++ - kontakt z autorem
  • Kurs C++ - mapa witryny
  • Kurs C++ - prawa autorskie
  • Kurs C++ - Kanał RSS
Informatyka krok po kroku
Użytkownik niezalogowany

Witaj nieznajomy

Reklamy
Randki

Lekcja 26

Referencja (typ referencyjny) w języku C++. Znaczenie referencji w programowaniu w C++.

utworzono: 2005-04-04 zmodyfikowano: 2005-04-04 Autor: mgr inż. Marcin Nabiałek

Typy podstawowe a typy pochodne

Do tej pory przedstawiłem Ci już wiele typów danych. Były to m.in. int, float, char. Wszystkie te typy danych to typy podstawowe. Dodatkowo znasz już typ struct, który jest typem złożonym, bowiem zawiera w ogólnym przypadku kilka pól typu podstawowego.

Musisz jednak wiedzieć, że oprócz typów podstawowych i złożonych, w języku C++ istnieją również typy pochodne. Czym są typy pochodne? Otóż typy pochodne są to takie typy, które pochodzą od typów podstawowych. Wiem, że pewnie niewiele Ci to na razie mówi, ale w najbliższych lekcjach mam nadzieję, że uda Ci się z tym pojęciem zaznajomić.

Ważne, żeby udało Ci się zapamiętać, że przedstawiony w tej lekcji typ, będzie właśnie przykładem typu pochodnego. A w tej lekcji zaprezentuję Ci typ referencyjny, nazywany inaczej referencją lub przezwiskiem.

Referencja - wprowadzenie

Zastanawiasz się pewnie w tym momencie, czym jest typ referencyjny. W pewnym sensie referencja jest to dodatkowa nazwa dla danej zmiennej. Dzięki referencji jedna zmienna może mieć 2 nazwy - swoją własną i nazwę utworzoną przez referencję. Ponieważ tak naprawdę do jednej zmiennej możemy utworzyć kilka referencji, oznacza to, że jedna zmienna uzyskuje w ten sposób wiele nazw.

Pora na wyjaśnienie, czemu typ referencyjny jest typem pochodnym. Ponieważ referencja, jak przed chwilą wspomniałem, jest nową nazwą dla zmiennej, znaczy to, że ta zmienna musiała zostać wcześniej utworzona. A skoro zmienna została utworzona, to znaczy, że musi być określonego typu (bo jak pamiętasz doskonale w C++ zmienne muszą mieć zawsze określony typ). Intuicyjnie, referencja powinna wiedzieć jakiego typu jest zmienna, z którą jest powiązana, bo tak jak w rzeczywistości Ty rozmawiasz inaczej ze swoim bratem, a inaczej z rodzicami, tak samo zmienna typu referencyjnego będzie inaczej "rozmawiała" ze zmienną typu int, a inaczej ze zmienną typu float.

Schematycznie utworzenie zmiennej typu referencyjnego wygląda następująco:

typ & nazwaZmiennejTypuReferencyjnego = nazwaZmiennej;

Pierwszą rzeczą jaka powinna Ci się rzucić w oczy, jest znak & pojawiający się przed nazwą zmiennej typu referencyjnego. Jako, że schematyczny typ w praktyce może być na przykład typem int lub float, to musiało zostać wprowadzone jakieś oznaczenie na referencję. Jako takie oznaczenie przyjęto dodatkowy &. Gdyby znaku & nie było, utworzylibyśmy po prostu zwykłą zmienną.

Drugą sprawą jest to, że jak widzisz zmienna typu referencyjnego jest od razu inicjalizowana. Czy to przypadek, że tak napisałem? Otóż nie - w przypadku referencji inicjalizacja jest konieczna i jeśli nie dokonasz inicjalizacji, wówczas kompilator zaprotestuje i Twój program nie zostanie skompilowany.

dodajdo

1 | 2 | 3 | 4 | 5 | 6 | > | |>

Użytkowanie Serwisu oznacza zgodę na wykorzystywanie plików cookie. Szczegółowe informacje