class Okręg : public Figura
private:
void Rysuj(int x1, int y1, int x2, int y2)
cout « "Okręg("«x1«" ,"«y1«" ,"«x2«" ,"«y2«")";
public
Okręg(int x1, int y1, int x2, int y2): Figura(x1, y1, x2, y2)
};
Klasy podstawowe zawierają ogólne cechy obiektów. Podczas tworzenia klasy podstawowej nie trzeba znać żadnych szczegółów implementacji. Jeśli wiemy, że obiekt będzie miał różne interfejsy, to możemy utworzyć abstrakcyjną klasę podstawową. Implementację zapewnią dopiero klasy pochodne wywodzone z tej abstrakcyjnej klasy podstawowej.
W kodzie źródłowym utworzyliśmy klasę ogólną o nazwie Figura. Ma ona pewne metody i zmienne oraz metodę rysowania całej figury. Zauważmy jednak, że metoda Wyrysuj nie wie, jak narysować poszczególne kształty. Wywołuje ona więc czystą funkcję wirtualną o nazwie Rysuj. Wszystkie klasy pochodne klasy Figura muszą zawierać implementację dla tej funkcji.
' Ponieważ Rysuj jest czystą funkcją wirtualną, klasy pochodne klasy Figura muszą zapewnić implementację tej funkcji, gdyż w przeciwnym razie nie będą mogły być skonkretyzowane.
Przykład: klasy Shape, RoundedRect, Circle oraz Rectangle w pliku inheritl.h
pisanie szybkiego kodu
Kod źródłowy
class Pochodna : public Interfejsl, public Interfejs2
private:
int m_i; float m_f1; float m_f2; public:
Pochodna() : m_i(0), m_f1 (O.Of), m_f2(0.555f)