Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stack>
- #include <vector>
- #include <utility>
- using namespace std;
- /*
- Zdefiniuj interfejs Zwierze, zawierający metodę czysto wirtualną string opis().
- Zaimplementuj klasy Pies, Kot i Krolik, realizujące interfejs Zwierze. Każda z klas powinna:
- – posiadać stałe pole string imie
- – posiadać konstruktor przyjmujący i ustawiający wartość pola imię
- – nadpisywać metodę opis() tak, aby zwracała gatunek oraz imię zwierzęcia, np. „Pies Burek”
- Zaimplementuj funkcję void listaZwierzat(), przyjmującą jako argument wektor wskaźników
- na klasę Zwierze. Funkcja powinna dla każdego obiektu z wektora wywołać metodę opis()
- i wypisać jej wynik na ekran.
- W funkcji main() przetestuj działanie całości - stwórz wektor wskaźników na klasę Zwierze i
- wypełnij go dynamicznie tworzonymi obiektami konkretnych klas, następnie wywołaj funkcję
- listaZwierzat().
- */
- class Zwierze{
- public:
- virtual string opis()=0;
- };
- class Pies : public Zwierze{
- const string imie;
- public:
- Pies(string Imie): imie(Imie){} // Zeby zainicjalizowac const string musimy uzyc listy inicjalizacyjnej
- virtual string opis(){
- return "Pies "+this->imie;
- }
- };
- class Kot : public Zwierze{
- const string imie;
- public:
- Kot(string Imie): imie(Imie){} // Zeby zainicjalizowac const string musimy uzyc listy inicjalizacyjnej
- virtual string opis(){
- return "Kot "+this->imie;
- }
- };
- class Krolik : public Zwierze{
- const string imie;
- public:
- Krolik(string Imie): imie(Imie){} // Zeby zainicjalizowac const string musimy uzyc listy inicjalizacyjnej
- virtual string opis(){
- return "Krolik "+this->imie;
- }
- };
- void listaZwierzat(vector <Zwierze*> z){
- for( size_t i = 0; i < z.size(); i++ )
- {
- cout << z[i]->opis() <<endl;
- }
- }
- int main()
- {
- vector <Zwierze*> y;
- Zwierze *a = new Pies("Burek");
- Zwierze *b = new Kot("Mruczek");
- Zwierze *c = new Krolik("Kicek");
- y.push_back(a);
- y.push_back(b);
- y.push_back(c);
- listaZwierzat(y);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement