Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream> // dołączenie biblioteki iostream
- using namespace std; // użycie przestrzeni nazw std
- class Figura // deklaracja klasy abstrakcyjnej Figura
- {
- public: // początek sekcji publicznej
- virtual void rysuj() = 0; // deklaracja metody czysto wirtualnej typu void o nazwie rysuj()
- };
- class Kolo : public Figura // deklaracja klasy Kolo dziedziczącej publicznie od klasy abstrakcyjnej Figura
- {
- public:
- virtual void rysuj() // nagłówek metody wirtualnej rysuj() typu void (konkretyzacja tej metody dla klasy Kolo
- {
- cout << "To jest kolo: ( )" << endl; // wypisanie na ekran komunikatu i przejście do kolejnego wiersza
- }
- };
- class Kwadrat : public Figura
- {
- public:
- virtual void rysuj()
- {
- cout << "To jest kwadrat: [ ]" << endl;
- }
- };
- class Trojkat : public Figura
- {
- public:
- virtual void rysuj()
- {
- cout << "To jest trojkat: /_\\ " << endl;
- }
- };
- int main()
- {
- Figura* Ko = new Kolo; // deklaracja wskaźnika na obiekt klasy Figura o nazwie Ko i dynamiczne zaalokowanie do niego obiektu klasy Kolo
- Figura* Kw = new Kwadrat;
- Figura* Tr = new Trojkat;
- Ko->rysuj(); // wywołanie metody wirtualnej rysuj() dla obiektu przypisanego do wskaźnika Ko
- Kw->rysuj();
- Tr->rysuj();
- delete Ko; // zwolnienie zaalokowanej pamięci ze wskaźnika Ko
- delete Kw;
- delete Tr;
- return 0; // wyjście z programu ze zwróceniem wartości zerowej (brak błędu)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement