Poznaj C++ w$ godziny0256

Poznaj C++ w$ godziny0256



248 Godzina 16

ZAWSZE

NIGDY

Zawsze rozszerzaj możliwości i funkcjonalność klas poprzez tworzenie klas pochodnych.

Zawsze modyfikuj działanie funkcji w klasach pochodnych poprzez nadpisywanie funkcji klasy bazowej.

Nigdy nie ukrywaj metod klasy bazowej poprzez zmianę sygnatury funkcji.

Podsumowanie

W ciągu tej godziny poznałeś zasady tworzenia klas pochodnych i dziedziczenia. Klasa dziedziczy po klasie bazowej wszystkie elementy zadeklarowane jako public i protected.

Elementy zadeklarowane jako protected są dostępne we wszystkich klasach pochodnych danej klasy. Klasy pochodne nie mają dostępu do elementów zadeklarowanych w klasie bazowej jako private.

Konstruktor może być zainicjalizowany przed wykonaniem treści. Z taką sytuacją mamy do czynienia w momencie wywoływania konstruktora klasy bazowej i przekazywania do niego parametrów.

W klasie pochodnej można nadpisać metody klasy bazowej. Jeśli funkcje klasy bazowej są wirtualne (patrz dalsza część książki) i jeśli odwołujemy się do obiektu poprzez wskaźnik lub referencję to funkcje klasy pochodnej będą wywoływane zależnie od typu wskazywanego aktualnie obiektu.

Metody klasy bazowej mogą być bezpośrednio wywołane poprzez pełną nazwę funkcji wraz z nazwą klasy bazowej. Np. jeśli klasa Pies dziedziczy z klasy Ssak metodę Idz (), to metodę tę można wywołać: Ssak: : Idz ().

Pytania i odpowiedzi

P: Czy elementy klas są dziedziczone we wszystkich kolejnych klasach pochodnych? Czy jeśli klasa Pies jest pochodną klasy Ssak, i jeśli Ssak jest pochodną klasy Zwierze to czy klasa Pies dziedziczy zmienne i funkcje klasy Zwierze?

O: Oczywiście tak. Dziedziczenie dotyczy całej stworzonej hierarchii. Klasa pochodna posiada cechy wszystkich swoich klas bazowych.

P: Czy klasa pochodna może zmienić metodę bazową, zadeklarowaną jako public na funkcję typu private?

O: Tak, i co więcej taka funkcją będzie prywatna we wszystkich kolejnych klasach pochodnych.

ZAWSZE

NIGDY

Zawsze rozszerzaj możliwości i funkcjonalność klas poprzez tworzenie klas pochodnych.

Zawsze modyfikuj działanie funkcji w klasach pochodnych poprzez nadpisywanie funkcji klasy bazowej.

Nigdy nie ukrywaj metod klasy bazowej poprzez zmianę sygnatury funkcji.

Podsumowanie

W ciągu tej godziny poznałeś zasady tworzenia klas pochodnych i dziedziczenia. Klasa dziedziczy po klasie bazowej wszystkie elementy zadeklarowane jako public i protected.

Elementy zadeklarowane jako protected są dostępne we wszystkich klasach pochodnych danej klasy. Klasy pochodne nie mają dostępu do elementów zadeklarowanych w klasie bazowej jako private.

Konstruktor może być zainicjalizowany przed wykonaniem treści. Z taką sytuacją mamy do czynienia w momencie wywoływania konstruktora klasy bazowej i przekazywania do niego parametrów.

W klasie pochodnej można nadpisać metody klasy bazowej. Jeśli funkcje klasy bazowej są wirtualne (patrz dalsza część książki) i jeśli odwołujemy się do obiektu poprzez wskaźnik lub referencję to funkcje klasy pochodnej będą wywoływane zależnie od typu wskazywanego aktualnie obiektu.

Metody klasy bazowej mogą być bezpośrednio wywołane poprzez pełną nazwę funkcji wraz z nazwą klasy bazowej. Np. jeśli klasa Pies dziedziczy z klasy Ssak metodę Idz (), to metodę tę można wywołać: Ssak: : Idz ().

Pytania i odpowiedzi

P: Czy elementy klas są dziedziczone we wszystkich kolejnych klasach pochodnych? Czy jeśli klasa Pies jest pochodną klasy Ssak, i jeśli Ssak jest pochodną klasy Zwierze to czy klasa Pies dziedziczy zmienne i funkcje klasy Zwierze?

O: Oczywiście tak. Dziedziczenie dotyczy całej stworzonej hierarchii. Klasa pochodna posiada cechy wszystkich swoich klas bazowych.

P: Czy klasa pochodna może zmienić metodę bazową, zadeklarowaną jako public na funkcję typu private?

O: Tak, i co więcej taka funkcją będzie prywatna we wszystkich kolejnych klasach pochodnych.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0032 16 Godzina 2 W linii 1 do programu dołączany jest plik iostream.h. Kompila
Poznaj C++ w$ godziny0093 Godzina 6 hProste klasy Klasy stanowią rozszerzenie możliwości C++, pozwal
Poznaj C++ w$ godziny0110 Więcej o klasach 97 Innym sposobem uzyskania funkcji typu inline jest umie
Poznaj C++ w$ godziny0017 XVI Poznaj C++ w 24 godziny ZAWSZE NIGDY Zawsze wykorzystuj tabele Zaws
Poznaj C++ w$ godziny0190 Zaawansowane referencje i wskaźniki 179 ZAWSZE NIGDY Zawsze przekazuj p
Poznaj C++ w$ godziny0124 112 Godzina 8 112 Godzina 8 ANALIZA: W linii 10 rozpoczynana jest pętla wh
Poznaj C++ w$ godziny0037 Program w C++ 21 16:    cout « "Wywołanie funkcji Add(
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$ godziny0084 70 Godzina 5 70 Godzina 5 8: 9: 10 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0100 86 Godzina 6 86 Godzina 6 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0122 110Godzina 8 duża liczbę: "; wartość pomijania: "; wartość
Poznaj C++ w$ godziny0140 Wskaźniki 129 Wskaźniki 129 13 14 15 16 17 18 cout « "longVar: "
Poznaj C++ w$ godziny0231 222 Godzina 15 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0238 Dziedziczenie i polimorfizmGodzina 16    Dziedziczenie 17 &
Poznaj C++ w$ godziny0240 232 Godzina 16 Taksonomia wprowadza hierarchię typu Jeść...”albo „należy d
Poznaj C++ w$ godziny0241 Dziedziczenie 233 Dziedziczenie 233 Rysunek 16.1 Hierarchia zwierzątKróles
Poznaj C++ w$ godziny0242 234 Godzina 16 dass Pies : public Ssak Rodzaj pochodzenia (deriuation type
Poznaj C++ w$ godziny0244 236Godzina 16 Dlatego, funkcja Pies:: Machaj Ogonem () ma dostęp do zmienn
Poznaj C++ w$ godziny0246 238 Godzina 16Listing 16.3. Wywoływanie konstruktorów i

więcej podobnych podstron