Advertisement
MeehoweCK

Untitled

May 22nd, 2023
702
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include <iostream>                                         // dołączenie biblioteki iostream
  2.  
  3. using namespace std;                                        // użycie przestrzeni nazw std
  4.  
  5.  
  6. class Figura                                                // deklaracja klasy abstrakcyjnej Figura
  7. {
  8. public:                                                     // początek sekcji publicznej
  9.     virtual void rysuj() = 0;                               // deklaracja metody czysto wirtualnej typu void o nazwie rysuj()
  10. };
  11.  
  12. class Kolo : public Figura                                  // deklaracja klasy Kolo dziedziczącej publicznie od klasy abstrakcyjnej Figura
  13. {
  14. public:
  15.     virtual void rysuj()                                    // nagłówek metody wirtualnej rysuj() typu void (konkretyzacja tej metody dla klasy Kolo
  16.     {
  17.         cout << "To jest kolo: ( )" << endl;                // wypisanie na ekran komunikatu i przejście do kolejnego wiersza
  18.     }
  19. };
  20.  
  21. class Kwadrat : public Figura
  22. {
  23. public:
  24.     virtual void rysuj()
  25.     {
  26.         cout << "To jest kwadrat: [ ]" << endl;
  27.     }
  28. };
  29.  
  30. class Trojkat : public Figura
  31. {
  32. public:
  33.     virtual void rysuj()
  34.     {
  35.         cout << "To jest trojkat: /_\\ " << endl;
  36.     }
  37. };
  38.  
  39. int main()
  40. {
  41.     Figura* Ko = new Kolo;                  // deklaracja wskaźnika na obiekt klasy Figura o nazwie Ko i dynamiczne zaalokowanie do niego obiektu klasy Kolo
  42.     Figura* Kw = new Kwadrat;
  43.     Figura* Tr = new Trojkat;
  44.  
  45.     Ko->rysuj();                            // wywołanie metody wirtualnej rysuj() dla obiektu przypisanego do wskaźnika Ko
  46.     Kw->rysuj();
  47.     Tr->rysuj();
  48.  
  49.     delete Ko;                              // zwolnienie zaalokowanej pamięci ze wskaźnika Ko
  50.     delete Kw;
  51.     delete Tr;
  52.  
  53.     return 0;                               // wyjście z programu ze zwróceniem wartości zerowej (brak błędu)
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement