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.
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.
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
}