108

108



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

Dziedziczenie wymaga pamięci

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)

{


Wyszukiwarka

Podobne podstrony:
class Okręg : public Figura{ private: void Rysuj(int x1, int y1, int x2, int y2){ cout «
Po class Uwaga { private: int m_nLicznik; public: Uwaga(void) : m_nLicznik(1){} void UstawLicznik(in
class Punkt{ private int x, y; public void Przesuń(int dx, int dy){ x += dx; y += dy;} public Punkt(
// Program04.java public class Program04 { public static void main(String[]{ // zamiana dwóch zmienn
co to jest zmienna? // Program03.java public class Program03 { public static void main(String[] args
{ class Punkt { public int x, y; public void Przesuń(int dx, int dy) { public Punkt(int x, int
Specjalna metoda: ToString(). > class Punkt { public int x, y; public void Przesuń(int dx, int dy
class Punkt{ priyate int x, y; public void Przesuń(int dx, int dy){ x += dx; y += dy;} public Punkt(
class Punkt{ public int x, y; // przesuń punkt o wektor [dx, dy] public void Przesuń(int dx, int dy)
Jak to działa? class Punkt { public int x, y; // przesuń punkt o wektor [dx, dy] public void Przesuń
Jak to działa? class Punkt { public int x, y; // przesuń punkt o wektor [dx, dy] public void Przesuń
18 p05 #include <stdio.h> #include <conio.c> class HojaKlasa { public: int
18 p06 #include <stdio.h> #include <conio.c> class HojaKlasa { public: int

więcej podobnych podstron