Poznaj C++ w$ godziny0109

Poznaj C++ w$ godziny0109



96 Godzina 7

Umieszczanie deklaracji klas w plikach nagłówkowych

Mimo że deklaracje można umieszczać w tekstach źródłowych, to nie jest to dobry zwyczaj. Przyjęła się konwencja umieszczania deklaracji w specjalnych plikach, zwanych nagłówkowymi. Mają one zazwyczaj tę samą nazwę co odpowiadający im plik źródłowy. Zmienia się jedynie rozszerzenie na .H, .HP lub .HPP. W książce stosujemy rozszerzenie .HPP (zobacz, czy twój kompilator dopuszcza takie rozszerzenie).

Przykładowo, umieszczamy deklarację klasy Kot w pliku KOT. HPP, a definicje metod w pliku KOT. CPP. Aby dodać deklarację klasy do treści programu, musimy dołączyć plik KOT. HPP do pliku KOT. CPP. Na początku pliku KOT. CPP wpisujemy linię:

#include "kot.hpp"

Ta linia mówi kompilatorowi, że ma wstawić plik KOT.HPP do treści programu.

Dlaczego rozdzielamy deklarację i implementację skoro potem je znów łączymy w całość. Otóż zazwyczaj użytkownicy klasy nie interesują się szczegółami implementacji. Wystarczy im zapoznanie się z nagłówkiem.


Deklaracja klasy mówi kompilatorowi co to jest za klasa, jakie dane przechowuje i jakie posiada funkcje. Deklarację klasy nazywamy jej interfejsem ponieważ mówi ona użytkownikowi jak ma się komunikować z klasą. Interfejs zazwyczaj jest przechowywany w plikach .HPP (plikach nagłówkowych).

Definicja funkcji to informacja dla kompilatora jak dana funkcja działa. Definicja klasy nazywana jest implementacją metody klasy i jest przechowywana w plikach .CPP. Szczegóły implementacji dotyczą jedynie autora klasy. Klienci klasy (czyli te fragmenty programu, które ją wykorzystują), nie muszą wiedzieć jak funkcje są zaimplementowane.


Implementacja funkcji jako inline

Każdą funkcję można zadeklarować jako inline. Dotyczy to również funkcji wewnętrznych danej klasy. Słowo kluczowe inline występuje bezpośrednio przed typem wartości zwracanej przez funkcję. Implementacja funkcji PobierzWage () jako inline będzie wyglądać następująco:

inline int Kot::PobierzWage()

{

return jegoWaga; // zwroc wartość zmiennej wewnętrznej

Umieszczanie deklaracji klas w plikach nagłówkowych

Mimo że deklaracje można umieszczać w tekstach źródłowych, to nie jest to dobry zwyczaj. Przyjęła się konwencja umieszczania deklaracji w specjalnych plikach, zwanych nagłówkowymi. Mają one zazwyczaj tę samą nazwę co odpowiadający im plik źródłowy. Zmienia się jedynie rozszerzenie na .H, ,HP lub .HPP. W książce stosujemy rozszerzenie .HPP (zobacz, czy twój kompilator dopuszcza takie rozszerzenie).

Przykładowo, umieszczamy deklarację klasy Kot w pliku KOT. HPP, a definicje metod w pliku KOT. CPP. Aby dodać deklarację klasy do treści programu, musimy dołączyć plik KOT. HPP do pliku KOT. CPP. Na początku pliku KOT. CPP wpisujemy linię:

#include "kot.hpp”

Ta linia mówi kompilatorowi, że ma wstawić plik KOT.HPP do treści programu. Dlaczego rozdzielamy deklarację i implementację skoro potem je znów łączymy w całość. Otóż zazwyczaj użytkownicy klasy nie interesują się szczegółami implementacji. Wystarczy im zapoznanie się z nagłówkiem.


Deklaracja klasy mówi kompilatorowi co to jest za klasa, jakie dane przechowuje i jakie posiada funkcje. Deklarację klasy nazywamy jej interfejsem ponieważ mówi ona użytkownikowi jak ma się komunikować z klasą. Interfejs zazwyczaj jest przechowywany w plikach .HPP (plikach nagłówkowych).

Definicja funkcji to informacja dla kompilatora jak dana funkcja działa. Definicja klasy nazywana jest implementacją metody klasy i jest przechowywana w plikach .CPP. Szczegóły implementacji dotyczą jedynie autora klasy. Klienci klasy (czyli te fragmenty programu, które ją wykorzystują), nie muszą wiedzieć jak funkcje są zaimplementowane.


Implementacja funkcji jako inline

Każdą funkcję można zadeklarować jako inline. Dotyczy to również funkcji wewnętrznych danej klasy. Słowo kluczowe inline występuje bezpośrednio przed typem wartości zwracanej przez funkcję. Implementacja funkcji PobierzWage () jako inline będzie wyglądać następująco:

inline int Kot::PobierzWage()

(

return jegoWaga; // zwroc wartość zmiennej wewnętrznej

}


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0184 Zaawansowane referencje i wskaźniki 173 Ponieważ wiemy, że obiekt nie będz
Poznaj C++ w$ godziny0243 Dziedziczenie 235 Ten program nie wypisuje nic na ekranie, gdyż jest jedyn
Poznaj C++ w$ godziny0048 32 Godzina 3 32 Godzina 3 ANALIZA: W linii 4 deklarowana jest zmienna mala
Poznaj C++ w$ godziny0055 40 Godzina 4EFEKT DZIAŁANIA; a: Ob: 0x: Oy: 35 a: 9 b: 7 x: 16 y: 16 W lin
Poznaj C++ w$ godziny0089 Funkcje 75 Kiedy wartość jest odkładana na stos, to jest umieszczana w kom
Poznaj C++ w$ godziny0098 84 Godzina 6 class Kot { unsigned int jegoWiek; unsigned int jegoWaga;&nbs
Poznaj C++ w$ godziny0101 Proste klasy 87 Linia 12 rozpoczyna sekcję prywatną, która w tym wypadku s
Poznaj C++ w$ godziny0106 Godzina 7Więcej o klasach W trakcie godziny 6, „Proste klasy”, nauczyłeś s
Poznaj C++ w$ godziny0110 Więcej o klasach 97 Innym sposobem uzyskania funkcji typu inline jest umie
Poznaj C++ w$ godziny0144 Wskaźniki 133 Operator dostępu pośredniego ( * ) jest używany w dwóch różn
Poznaj C++ w$ godziny0146 Wskaźniki 135 Wskaźniki 135 ANALIZA: W tym programie deklarujemy dwie zmie
Poznaj C++ w$ godziny0156 145Zaawansowane wykorzystanie wskaźników W liniach 6-13 deklarujemy klasę
Poznaj C++ w$ godziny0166 Referencje 155 Referencje 155 ANALIZA: W linii 8 deklarujemy zmienną lokal
Poznaj C++ w$ godziny0167 156 Godzina 11 156 Godzina 11 ANALIZA: Podobnie jak w poprzednim przykładz
Poznaj C++ w$ godziny0186 175Zaawansowane referencje i wskaźniki Wskaźnik plnt jest deklarowany i in
Poznaj C++ w$ godziny0220 Godzina 15Tablice W poprzednich rozdziałach, wszystkie deklarowane przez n
Poznaj C++ w$ godziny0221 212 Godzina 15Rysunek 15.1 Deklarowanie tablicy *— 4 bajty —► 100 bajtów
Poznaj C++ w$ godziny0225 216 Godzina 15 216 Godzina 15 ANALIZA: W liniach 5—17 deklarujemy klasę KO

więcej podobnych podstron