Programowanie w takim środowisku ma wiele zalet:
— Åšrodowisko generuje szkielet programu
— Zazwyczaj wbudowany edytor podÅ›wietla sÅ‚owa kluczowe,
— Zazwyczaj kompilacja i uruchomienie programu realizowane sÄ… w jednym
kroku
— Åšrodowisko ma wbudowany debuger, wykrywanie prostych bÅ‚Ä™dów jest
efektywne
W Internecie można znaleźć wiele bezpłatnych środowisk programistycz-
nych. Wybór środowiska jest kwestią gustu. Jeżeli weźmiemy pod uwagę
wielkość pamięci potrzebnej do zainstalowania takiego środowiska to re-
komendujemy doskonałe środowisko Dev-C++ przeznaczone dla systemu
operacyjnego Windows. Dev-C++ jest tzw. oprogramowaniem otwartym
(open-source). Jeżeli chcemy pracować z tym środowiskiem, możemy je po-
brać nieodpłatnie z witryny Bloodshed Software (www.bloodshed.net).
Rozdział 3
Klasy i obiekty
3.1. Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.2. Deklaracja i definicja klasy . . . . . . . . . . . . . . . .
42
3.3. WystÄ…pienie klasy (definiowanie obiektu) . . . . . . . .
43
3.4. Dostęp do elementów klasy . . . . . . . . . . . . . . . .
43
3.5. Metody klasy . . . . . . . . . . . . . . . . . . . . . . . .
47
3.6. Klasa z akcesorami . . . . . . . . . . . . . . . . . . . .
50
3.7. Funkcje składowe const . . . . . . . . . . . . . . . . . .
53
42
3. Klasy i obiekty
3.1. Wstęp
Zasadniczą cechą języka C++ jest możliwość używania klas (ang. class).
Niezbyt precyzyjnie mówiąc, klasa jest bardzo podobna do typu struktu-
ralnego znanego z języka C. Zasadnicza różnica między klasą a strukturą
polega na fakcie, że struktura przechowuje jedynie dane, natomiast klasa
przechowuje zarówno dane jak i funkcje. Klasa jest typem definiowanym
przez użytkownika. Gdy deklarowane są zmienne tego typu, są one obiek-
tami. Mówiąc krótko: w języku C++ klasy są formalnymi typami, obiekty
są specyficznymi zmiennymi tego typu. Klasa jest właściwie zbiorem zmien-
nych, często różnego typu i skojarzonymi z tymi danymi metodami, czyli
funkcjami wykorzystywanymi wyłącznie dla ściśle określonych danych. Ope-
rowanie obiektami w programie jest istotÄ… programowania obiektowego.
3.2. Deklaracja i definicja klasy
Zmienna obiektowa (obiekt) jest elementem klasy, klasa jest typem de-
finiowanym przez użytkownika. Klasa tworzona jest przy pomocy słowa
kluczowego class (podobnie jak struktura przy pomocy słowa kluczowego
struct) i może zawierać dane i prototypy funkcji. W skład klasy wchodzą
zmienne proste oraz zmienne innych klas. Zmienna wewnÄ…trz klasy jest na-
zywana zmienną składową lub daną składową. Funkcja w danej klasie zwykle
odnosi się do zmiennych składowych. Funkcje klasy nazywa się funkcjami
składowymi lub metodami klasy. Klasa może być deklarowana:
— Na zewnÄ…trz wszystkich funkcji programu. W tym przypadku jest ona
widoczna przez wszystkie pliki programu.
— WewnÄ…trz definicji funkcji. Tego typu klasa nazywa siÄ™ lokalnÄ…, ponieważ
jest widzialna tylko wewnÄ…trz funkcji.
— WewnÄ…trz innej klasy. Tego typu klasa jest nazywana klasÄ… zagnieżdżonÄ…
Deklaracja klasy o nazwie Kot może mieć następującą postać:
c l a s s Kot
{
i n t wiek ;
i n t waga ;
void Glos ( ) ;
} ;
Została utworzona klasa o nazwie Kot, zawiera ona dane: wiek i waga a
ponadto jedną funkcje Glos(). Taka deklaracja nie alokuje pamięci, infor-
muje jedynie kompilator, czym jest typ Kot, jakie zawiera dane i funkcje.
3.3. WystÄ…pienie klasy (definiowanie obiektu)
43
Na podstawie tych informacji kompilator wie jak dużą potrzeba przygoto-
wać pamięć w przypadku tworzenia zmiennej typu Kot. W tym konkretnym
przykładzie zmienna typu Kot zajmuje 8 bajtów (przy założeniu, że typ int
potrzebuje 4 bajty). Dla funkcji składowych (w naszym przykładzie funkcja
Glos()) miejsce w pamięci nie jest rezerwowane.
3.3. WystÄ…pienie klasy (definiowanie obiektu)
Wystąpienie klasy deklaruje się tak samo jak zmienne innych typów, np.
Kot Filemon ;
|