Poznaj C++ w$ godziny0107

Poznaj C++ w$ godziny0107



94 Godzina 7

UstawWiek() nie może być zadeklarowana jako const, ponieważ zmienia wartość zmiennej jegoWiek. Druga funkcja, PobierzWiek () może, a wręcz powinna być zadeklarowana jako const, ponieważ nie modyfikuje żadnej zmiennej w klasie, a jedynie zwraca aktualną wartość zmiennej jegoWiek. Krótko mówiąc, deklaracje obu funkcji powinny wyglądać następująco:

void UstawWiek(int wiek); int PobierzWiek() const;

Jeśli zadeklarujesz funkcję jako const, a późniejsza implementacja funkcji zmieni obiekt danej klasy (poprzez zmianę wartości należącej do klasy), to kompilator zgłosi komunikat błędu. Np. jeśli zmienisz funkcję PobierzWiek () tak, aby zliczała ile razy odczytywaliśmy wartość zmiennej jegoWiek (za pomocą dodatkowej zmiennej w klasie, np. licznik) to kompilator wygeneruje błąd. Stanie się tak, ponieważ zawartości obiektu klasy Kot zostanie zmieniona w momencie wywołania funkcji PobierzWiek ().


Wykorzystuj funkcje typu const wszędzie, gdzie to jest możliwe. Pozwoli to kompilatorowi na pomoc w wyszukiwaniu błędów. Usuwanie błędów z programu będzie przebiegać szybciej i sprawniej.


Deklarowanie funkcji wewnętrznych jako const (tam gdzie jest do możliwe) świadczy o dobrym stylu programowania. Kompilator sam wychwyci wszystkie błędy związane z niezamierzonymi zmianami zawartości obiektów.

Interfejs a implementacja

Klientami nazywamy te części programu, które tworzą i wykorzystują obiekty danej klasy. Interfejs klasy (deklarację) można traktować jako kontrakt między tymi klientami. Mówi on jakie dane są dostępne w klasie i jak klasa się zachowuje.

Np. w deklaracji klasy Kot ustalasz, że każdy Kot (obiekt tej klasy) będzie miał zmienną wewnętrzną jegoWiek, która może być zainicjowana poprzez konstruktor, której wartość może być zmieniona za pomocą funkcji dostępu UstawWiek () i która może być odczytana za pomocą funkcji PobierzWiek (). Gwarantujesz również, że każdy Kot będzie umiał zamiauczeć (funkcja Miaucz ()).

UstawWiek () nie może być zadeklarowana jako const, ponieważ zmienia wartość zmiennej jegoWiek. Druga funkcja. PobierzWiek() może, a wręcz powinna być zadeklarowana jako const. ponieważ nie modyfikuje żadnej zmiennej w klasie, a jedynie zwraca aktualną wartość zmiennej jegoWiek. Krótko mówiąc, deklaracje obu funkcji powinny wyglądać następująco:

void UstawWiek(int wiek); int PobierzWiek() const;

Jeśli zadeklarujesz funkcję jako const, a późniejsza implementacja funkcji zmieni obiekt danej klasy (poprzez zmianę wartości należącej do klasy), to kompilator zgłosi komunikat błędu. Np. jeśli zmienisz funkcję PobierzWiek () tak, aby zliczała ile razy odczytywaliśmy wartość zmiennej jegoWiek (za pomocą dodatkowej zmiennej w klasie, np. licznik) to kompilator wygeneruje błąd. Stanie się tak, ponieważ zawartości obiektu klasy Kot zostanie zmieniona w momencie wywołania funkcji PobierzWiek().


Wykorzystuj funkcje typu const wszędzie, gdzie to jest możliwe. Pozwoli to kompilatorowi na pomoc w wyszukiwaniu błędów. Usuwanie błędów z programu będzie przebiegać szybciej i sprawniej.


Deklarowanie funkcji wewnętrznych jako const (tam gdzie jest do możliwe) świadczy o dobrym stylu programowania. Kompilator sam wychwyci wszystkie błędy związane z niezamierzonymi zmianami zawartości obiektów.

Interfejs a implementacja

Klientami nazywamy te części programu, które tworzą i wykorzystują obiekty danej klasy. Interfejs klasy (deklarację) można traktować jako kontrakt między tymi klientami. Mówi on jakie dane są dostępne w klasie i jak klasa się zachowuje.

Np. w deklaracji klasy Kot ustalasz, że każdy Kot (obiekt tej klasy) będzie miał zmienną wewnętrzną jegoWiek, która może być zainicjowana poprzez konstruktor, której wartość może być zmieniona za pomocą funkcji dostępu UstawWiek () i która może być odczytana za pomocą funkcji PobierzWiek (). Gwarantujesz również, że każdy Kot będzie umiał zamiauczeć (funkcja Miaucz ()).

Jeśli zadeklarujesz funkcję PobierzWiek () jako const (powinieneś), to gwarantu

jesz również, że PobierzWiek () nie zmieni zawartości obiektu Kot.


Wyszukiwarka

Podobne podstrony:
IMG33 4. Które z poniższych opisów nie może być rozumiane jako przeniesienie: a)    
dobry kurs on-line nie może być zwykłą stroną internetową, ponieważ taka me zainteresuje studentów.
Część pierwsza Trauma uderza w całą społeczność, a wobec tego nie może być traktowana jako indywidua
Czyn ludzki nie może być oceniany jako dobry lub zły, jeśli w nim nie uczestniczy rozum i wola. Zmys
PA260262 zewnętrznej (elewacyjnęj) warstwy materiałowej nie może być przyjęty jako większy niż 0.15
dlaczego państwo nie może być traktowane jako podstawowy podmiot bezpieczeństwa Boodi wymienia jego
CCF20121020021 Zakaz Pauliego - w atomie nie może być dwóch elektronów o takich samych wszystkich w
które świadczą o tym, że jednak prawo wspólnotowe nie może być traktowane jako część prawa
§5 Minimalna liczba godzin kształcenia na KKZ prowadzonego w formie zaocznej nie może być mniejsza n
7.    Łączna liczba godzin zajęć w ramach ITS nie może być mniejsza od liczby godzin
Poznaj C++ w$ godziny0182 Zaawansowane referencje i wskaźniki 171 int PobierzWiek() const { return j
EXCEL it &> i Microsoft Excel Ten skoroszyt nie może być scalany, ponieważ zawiera nie scalon
Wszelkie prawa zastrzeżone Praca ta w całości ani we fragmentach nie może być powielana ani rozpowsz
img010 (105) 322 Umberto Eco wyodrębnienia czegoś uniwersalnego i zbiorowego, co, jak u Junga, nie m

więcej podobnych podstron