Advertisement
Holek

Untitled

Jun 22nd, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3. #include <vector>
  4. #include <utility>
  5. using namespace std;
  6.  
  7. /*
  8. Zdefiniuj interfejs Zwierze, zawierający metodę czysto wirtualną string opis().
  9. Zaimplementuj klasy Pies, Kot i Krolik, realizujące interfejs Zwierze. Każda z klas powinna:
  10. – posiadać stałe pole string imie
  11. – posiadać konstruktor przyjmujący i ustawiający wartość pola imię
  12. – nadpisywać metodę opis() tak, aby zwracała gatunek oraz imię zwierzęcia, np. „Pies Burek”
  13. Zaimplementuj funkcję void listaZwierzat(), przyjmującą jako argument wektor wskaźników
  14. na klasę Zwierze. Funkcja powinna dla każdego obiektu z wektora wywołać metodę opis()
  15. i wypisać jej wynik na ekran.
  16. W funkcji main() przetestuj działanie całości - stwórz wektor wskaźników na klasę Zwierze i
  17. wypełnij go dynamicznie tworzonymi obiektami konkretnych klas, następnie wywołaj funkcję
  18. listaZwierzat().
  19.  
  20. */
  21.  
  22. class Zwierze{
  23. public:
  24.     virtual string opis()=0;
  25. };
  26.  
  27. class Pies : public Zwierze{
  28.     const string imie;
  29. public:
  30.     Pies(string Imie): imie(Imie){} // Zeby zainicjalizowac const string musimy uzyc listy inicjalizacyjnej
  31.     virtual string opis(){
  32.         return "Pies "+this->imie;
  33.     }
  34. };
  35.  
  36. class Kot : public Zwierze{
  37.     const string imie;
  38. public:
  39.     Kot(string Imie): imie(Imie){} // Zeby zainicjalizowac const string musimy uzyc listy inicjalizacyjnej
  40.     virtual string opis(){
  41.         return "Kot "+this->imie;
  42.     }
  43. };
  44. class Krolik : public Zwierze{
  45.     const string imie;
  46. public:
  47.     Krolik(string Imie): imie(Imie){} // Zeby zainicjalizowac const string musimy uzyc listy inicjalizacyjnej
  48.     virtual string opis(){
  49.         return "Krolik "+this->imie;
  50.     }
  51. };
  52. void listaZwierzat(vector <Zwierze*> z){
  53.      for( size_t i = 0; i < z.size(); i++ )
  54.      {
  55.          cout << z[i]->opis() <<endl;
  56.      }
  57. }
  58. int main()
  59. {
  60.     vector <Zwierze*> y;
  61.  
  62.     Zwierze *a = new Pies("Burek");
  63.     Zwierze *b = new Kot("Mruczek");
  64.     Zwierze *c = new Krolik("Kicek");
  65.  
  66.     y.push_back(a);
  67.     y.push_back(b);
  68.     y.push_back(c);
  69.     listaZwierzat(y);
  70.  
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement