Gratulacje, kretor Mój egrafik został zakończony. Jeżeli rejestrowałeś się w tym kreatorze, pamiętaj aby kliknąć w link potwierdzający, wysłany na Twój adres email. Jeżeli tego nie zrobisz, nie będziesz mógł się zalogować, a dodane przez Ciebie wpisy nie zostaną opublikowane.
Kolejny bardzo długi i bardzo ważny rozdział :) Zawiera on bowiem dokończenie opisu techniki programowania obiektowego.
Rozpoczęliśmy od mechanizmu dziedziczenia oraz jego roli w ponownym wykorzystywaniu kodu. Zobaczyliśmy też, jak tworzyć proste i bardziej złożone hierarchie klasy.
Dalej było nawet ciekawiej: dzięki metodom wirtualnym i polimorfizmu przekonaliśmy się, że programowanie z użyciem technik obiektowych jest efektywniejsze i prostsze niż dotychczas.
Na koniec zostałeś też obdarzony sporą porcją informacji z zakresu projektowania aplikacji. Dowiedziałeś się więc o rodzajach obiektów, sposobach znajdowania właściwych klas oraz związkach między nimi.
W następnym rozdziale - ostatnim w podstawowym kursie C++ - przypatrzymy się wskaźnikom jako takim, już niekoniecznie w kontekście OOPu. Pomówimy też o pamięci, jej alokowaniu i zwalnianiu.
Pytania i zadania
Na końcu rozdziału nie może naturalnie zabraknąć odpowiedniego pakietu pytań oraz ćwiczeń :)
Pytania
Na czym polega mechanizm dziedziczenia i jakie zjawisko jest jego głównym skutkiem?
Jaka jest różnica między specyfikatorami praw dostępu do składowych, private oraz protected ?
Co nazywamy płaską hierarchią klas?
Czym różni się metoda wirtualna od zwykłej?
Co jest szczegolną cechą klasy abstrakcyjnej?
Kiedy klasa jest typem polimorficznym?
Na czym polegają polimorficzne zachowania klas w C++?
Co to jest RTTI? Na jakie dwa sposoby mechanizm ten umożliwia sprawdzenie klasy obiektu, na który wskazuje dany wskaźnik?
Jakie trzy rodzaje obiektów można wyróżnić w programie?
Czym jest abstrakcja klasy, a czym jej implementacja?
( Trudne ) Napisz obiektową wersję gry Kółko i krzyżyk z rozdziału 1.5. Wskazówki : dobrym kandydatem na obiekt jest oczywiście plansza. Zdefiniuj też klasę graczy, przechowującą ich imiona (niech program pyta się o nie na początku gry).