Dziedziczenie ze wspólnej klasy bazowej. Amfibia

Podobne dokumenty
class Samochod { void Ruch(); }; class Amfibia : public Samochod { void Ruch(); // amfibie pływają };

Owad():waga(1),jadowitosc(false) {cout<<"konstruktor domyslny owada\n";}

Ssak::Ssak(Ssak& ref):waga(ref.ile_wazy()) {cout << "Konstruktor kopiujacy klasy Ssak...\n";} 1

Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

Laboratorium 2. Funkcje wirtualne

string Rodzaj[4]= {"TV ", "wieza ", "DVD ", "kino "}; string Producent[4]={"Phillips", "Sony ", "Sanyo ", "Samsung "};

Programowanie Obiektowew języku C++ Zadania L9

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Programowanie Obiektowew języku C++ Zadania L8

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

dr inż. Jarosław Forenc

Plik klasy. h deklaracje klas

ATD. Wykład 8. Programowanie (język C++) abstrakcyjny typ danych. Abstrakcyjne typy danych (ATD) Metody czysto wirtualne. Definicje i uwagi:

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Dziedziczenie & W slajdach są materiały zapożyczone z

Wprowadzenie do programowanie obiektowego w języku C++

Problem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3.

Programowanie obiektowe język C++

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Wstęp do Programowania 2

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Projektowanie klas c.d. Projektowanie klas przykład

Ssak::Ssak(Ssak& ref):waga(ref.ile_wazy()) {cout << "Konstruktor kopiujacy klasy Ssak...\n";} 1

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

TEMAT : KLASY POLIMORFIZM

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Programowanie obiektowe w C++ Wykład 12

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

Mechanizm dziedziczenia

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

#include "stdafx.h" #include <iostream> #include "windows.h" using namespace std;

Programowanie obiektowe

Listy powiązane zorientowane obiektowo

Programowanie obiektowe w języku

PARADYGMATY PROGRAMOWANIA Wykład 4

Programowanie 2. Język C++. Wykład 3.

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

Programowanie 2. Język C++. Wykład 9.

Laboratorium 1 - Programowanie proceduralne i obiektowe

Programowanie Obiektowew języku C++ Zadania L4

Wstęp do Programowania 2

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASY cz4. Dorota Pylak. destruktory składowe statyczne przeciążanie operatorów. wskaźniki

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Środowisko programistyczne GEANT4

Operacje wejścia/wyjścia (odsłona druga) - pliki

Zaawansowane programowanie w C++ (PCP)

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje


Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Informatyka 2. Wykład nr 3 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Wyjątki (exceptions)

it = 0; memset((void *)ptr, 0, items*sizeof(double)); cout << "Konstruktor sparametryzowany " << title << " adres: " << ptr << "\n";

Mechanizm dziedziczenia

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

EGZAMIN 2 (14 WRZEŚNIA 2015) JĘZYK C++

Podstawy Programowania Obiektowego

Programowanie obiektowe

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Wstęp do programowania

Wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Składnia C++ Programowanie Obiektowe, część 3 Mateusz Cicheński

Technologie cyfrowe semestr letni 2018/2019

Polimorfizm w pigułce

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne.

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Projekty zaliczeniowe z obiektówki

4. telefony wyłączone i schowane, na blatach tylko czyste kartki i długopisy/pióra, użycie telefonu na egzaminie = ściąganie,

I - Microsoft Visual Studio C++

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

C++ - [4-7] Polimorfizm

Programowanie w języku C++

Podstawy Programowania Obiektowego

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3

Programowanie (obiektowe) cz.12

Zajęcia nr 4 Programowanie obiektowe konstruktory. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wstęp do programowania

Języki programowania - podstawy

Wstęp do Informatyki

Programowanie obiektowe

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Transkrypt:

Dziedziczenie ze wspólnej klasy bazowej Pojazd Pojazd Samochód Statek Amfibia 1

/*Dziedziczenie wielokrotne z wspólnej klasy bazowej*/ #include <iostream> using namespace std; char* naped_ziemia[]="benzyna", "diesel","hybryda" char* naped_woda[]="diesel","turbina" class Pojazd protected: int zaloga; Pojazd(int z):zaloga(z) cout<<"konstruktor pojazdu...\n";} virtual void IluLudzi() cout<<"zaloga pojazdu to "<<zaloga<<" ludzi\n";} virtual ~Pojazd() cout<<"destruktor pojazdu\n";} 2

class Samochod: public Pojazd char* silnik; int predkosc; Samochod (int,int,int); void Jazda(int v) cout<<"jade "<<v<<" km/h \n";} virtual ~Samochod() cout<<"destruktor samochodu\n";} class Statek : public Pojazd char* silnik; double szybkosc; Statek (int,int,int); void Plyne(int v) cout<<"plyne z predkoscia "<<v<<" wezlow\n";} virtual ~Statek() cout<<"statek tonie\n";} 3

class Amfibia : public Samochod, public Statek int ladownosc; Amfibia(int,int,int,int,int,int); Amfibia(); virtual void IluLudzi() cout<<"zaloga amfibii to "<<Samochod::zaloga<<" ludzi\n";} ~Amfibia() cout<<"amfibie tez tona\n";} void Ladownosc() cout<<"nie zatone przy ciezarze "<<ladownosc<<" ton!!\n";} Samochod::Samochod(int z,int i, int pred): Pojazd(z),silnik(naped_ziemia[i]),predkosc(pred) cout<<"konstruktor samochodu\n";} 4

Statek::Statek(int z,int a, int v): Pojazd(z),silnik(naped_woda[a]),szybkosc(v) cout<<"wodowanie statku\n";} Amfibia::Amfibia(int z,int i1,int v1,int i2, int v2, int masa) :Samochod(z,i1,v1),Statek(z,i2,v2),ladownosc(masa) cout<<"konstruktor amfibii\n";} Amfibia::Amfibia() :Samochod(5,0,70),Statek(5,0,8),ladownosc(1) cout<<"konstruktor amfibii\n";} void main() cout<<"aligator\n\n"; Amfibia aligator(10,0,70,0,6,2); aligator.jazda(30); aligator.ladownosc(); aligator.plyne(6); //cout<<aligator.silnik<<endl; cout<<aligator.samochod::silnik<<endl; 5

cout<<aligator.statek::silnik<<endl; aligator.pojazd::iluludzi(); aligator.iluludzi(); aligator.~amfibia(); cout<<"kubelwagen\n\n"; Amfibia* kubelwagen= new Amfibia; kubelwagen->jazda(25); kubelwagen->plyne(8); kubelwagen->ladownosc(); cout<<kubelwagen->predkosc<<endl; kubelwagen->iluludzi(); cout<<kubelwagen->szybkosc<<endl; } delete kubelwagen; system("pause"); 6

Aligator Konstruktor pojazdu... Konstruktor samochodu Konstruktor pojazdu... Wodowanie statku Konstruktor amfibii Jade 30 km/h Nie zatone przy ciezarze 2 ton!! Plyne z predkoscia 6 wezlow benzyna diesel Zaloga pojazdu to 10 ludzi Zaloga amfibii to 10 ludzi Amfibie tez tona Statek tonie Destruktor pojazdu Destruktor samochodu Destruktor pojazdu 7

Kubelwagen Konstruktor pojazdu... Konstruktor samochodu Konstruktor pojazdu... Wodowanie statku Konstruktor amfibii Jade 25 km/h Plyne z predkoscia 8 wezlow Nie zatone przy ciezarze 1 ton!! 70 Zaloga amfibii to 5 ludzi 8 Amfibie tez tona Statek tonie Destruktor pojazdu Destruktor samochodu Destruktor pojazdu Press any key to continue... 8

Dziedziczenie wirtualne Pojazd Samochód Statek Amfibia 9

/*Dziedziczenie wirtualne z wspólnej klasy bazowej*/ #include <iostream> using namespace std; char* naped_ziemia[]="benzyna", "diesel","hybryda" char* naped_woda[]="diesel","turbina" class Pojazd protected: int zaloga; Pojazd():zaloga(3) cout<<"konstruktor domyslny pojazdu...\n";} /*Niezbędny konstruktor domyślny klasy Pojazd - bez niego błędy podczas konstrukcji obiektu klasy Amfibia*/ Pojazd(int z):zaloga(z) cout<<"konstruktor pojazdu...\n";} 10

virtual void IluLudzi() cout<<"zaloga pojazdu to "<<zaloga<<" ludzi\n";} virtual ~Pojazd() cout<<"destruktor pojazdu\n";} class Samochod: virtual public Pojazd char* silnik; int predkosc; Samochod (int,int,int); void Jazda(int v) cout<<"jade "<<v<<" km/h \n";} virtual ~Samochod() cout<<"destruktor samochodu\n";} class Statek : virtual public Pojazd 11

char* silnik; double szybkosc; Statek (int,int,int); void Plyne(int v) cout<<"plyne z predkoscia "<<v<<" wezlow\n";} virtual ~Statek() cout<<"statek tonie\n";} class Amfibia : public Samochod, public Statek int ladownosc; Amfibia(int,int,int,int,int,int); Amfibia(); virtual void IluLudzi() cout<<"zaloga amfibii to "<<Samochod::zaloga<<" ludzi\n";} ~Amfibia() cout<<"amfibie tez tona\n";} 12

void Ladownosc() cout<<"nie zatone przy ciezarze "<<ladownosc<<" ton!!\n";} Samochod::Samochod(int z,int i, int pred): Pojazd(z),silnik(naped_ziemia[i]),predkosc(pred) cout<<"konstruktor samochodu\n";} Statek::Statek(int z,int a, int v): Pojazd(z),silnik(naped_woda[a]),szybkosc(v) cout<<"wodowanie statku\n";} Amfibia::Amfibia(int z,int i1,int v1,int i2, int v2, int masa) :Samochod(z,i1,v1),Statek(z,i2,v2),ladownosc(masa) cout<<"konstruktor amfibii\n";} Amfibia::Amfibia() :Samochod(5,0,70),Statek(5,0,8),ladownosc(1) cout<<"konstruktor amfibii\n";} 13

void main() cout<<"aligator\n\n"; Amfibia aligator(10,0,70,0,6,2); aligator.jazda(30); aligator.ladownosc(); aligator.plyne(6); cout<<aligator.samochod::silnik<<endl; cout<<aligator.statek::silnik<<endl; aligator.pojazd::iluludzi(); aligator.iluludzi(); aligator.~amfibia(); cout<<"kubelwagen\n\n"; Amfibia* kubelwagen= new Amfibia; kubelwagen->jazda(25); kubelwagen->plyne(8); kubelwagen->ladownosc(); cout<<kubelwagen->predkosc<<endl; kubelwagen->iluludzi(); cout<<kubelwagen->szybkosc<<endl; delete kubelwagen; system("pause"); } 14

Aligator Konstruktor domyslny pojazdu... Konstruktor samochodu Wodowanie statku Konstruktor amfibii Jade 30 km/h Nie zatone przy ciezarze 2 ton!! Plyne z predkoscia 6 wezlow benzyna diesel Zaloga pojazdu to 3 ludzi Zaloga amfibii to 3 ludzi Amfibie tez tona Statek tonie Destruktor samochodu Destruktor pojazdu 15

Kubelwagen Konstruktor domyslny pojazdu... Konstruktor samochodu Wodowanie statku Konstruktor amfibii Jade 25 km/h Plyne z predkoscia 8 wezlow Nie zatone przy ciezarze 1 ton!! 70 Zaloga amfibii to 3 ludzi 8 Amfibie tez tona Statek tonie Destruktor samochodu Destruktor pojazdu Press any key to continue... 16

1. Dziedziczenia wielokrotnego należy używać, gdy nowa klasa wymaga funkcji i cech pochodzących z więcej niż jednej klasy bazowej 2. Dziedziczenia wirtualnego używa się, gdy najbardziej wyprowadzona klasa wymaga tylko jednego egzemplarza wspólnej klasy bazowej 3. Wirtualna klasa bazowa powinna być inicjalizowana w najbardziej wyprowadzonej klasie 4. Dziedziczenia wielokrotnego nie używa się tam, gzie wystarczy dziedziczenie jednokrotne 17

/*Czyste funkcje wirtualne Klasa abstrakcyjna*/ #include <iostream> using namespace std; class Zwierze virtual void Glos() = 0; Zwierze() cout<<"konstruktor klasy Zwierze\n";} ~Zwierze() cout<<"destruktor klasy Zwierze\n";} 18

class Pies : public Zwierze void Aktywnosc()cout<<"Pies : Macham ogonem!!"<<endl;} void Glos()cout<<"Pies : Hau hau!!"<<endl;} Pies() cout<<"konstruktor klasy Pies\n";} ~Pies() cout<<"destruktor klasy Pies\n";} class Kot : public Zwierze void Aktywnosc()cout<<"Kot : Zlapalem mysz!!"<<endl;} void Glos()cout<<"Kot : Miau miau!!"<<endl;} Kot() cout<<"konstruktor klasy Kot\n";} ~Kot() cout<<"destruktor klasy Kot\n";} 19

} void main() Zwierze* pzwierze1 = new Pies; pzwierze1->glos(); delete pzwierze1; Zwierze* pzwierze2 = new Kot; pzwierze2->glos(); delete pzwierze2; Pies Azor; Azor.Glos(); Azor.Aktywnosc(); Kot Mruczek; Mruczek.Glos(); Mruczek.Aktywnosc(); //Zwierze zwierz; //Zwierze* pzwierz= new Zwierze; /*Nie można stworzyć obiektu klasy abstrakcyjnej*/ system("pause"); 20

Konstruktor klasy Zwierze Konstruktor klasy Pies Pies : Hau hau!! Destruktor klasy Zwierze Konstruktor klasy Zwierze Konstruktor klasy Kot Kot : Miau miau!! Destruktor klasy Zwierze Konstruktor klasy Zwierze Konstruktor klasy Pies Pies : Hau hau!! Pies : Macham ogonem!! Konstruktor klasy Zwierze Konstruktor klasy Kot Kot : Miau miau!! Kot : Zlapalem mysz!! Press any key to continue... 21

// Wyprowadzenie klas abstrakcyjnych z innych klas abstrakcyjnych #include <iostream> using namespace std; class Zwierze Zwierze(); virtual ~Zwierze() cout<<"destruktor klasy Zwierze\n";} virtual void Sen() const = 0; virtual void Jedz() const = 0; virtual void Rozmnazanie() const = 0; virtual void Ruch() const = 0; virtual void Glos() const = 0; Zwierze::Zwierze() cout<<"konstruktor klasy Zwierze\n";} 22

class Ssak : public Zwierze Ssak () cout<<"konstruktor klasy Ssak...\n";} virtual ~Ssak() cout<<"destruktor klasy Ssak\n";} virtual void Rozmnazanie()const cout<<"rozmnazanie klasy Ssak...\n";} class Ryba : public Zwierze Ryba() cout<<"konstruktor klasy Ryba...\n";} virtual ~Ryba() cout<<"destruktor klasy Ryba\n";} virtual void Sen() const cout<<"ryba spi...\n";} virtual void Jedz() const cout<<"ryba je...\n";} virtual void Rozmnazanie() const cout<<"ryba sklada jaja...\n";} virtual void Ruch() const cout<<"ryba plywa...\n";} virtual void Glos() const cout<<"ryba milczy...\n";} 23

class Kon: public Ssak Kon() cout<<"konstruktor klasy Kon...\n";} virtual ~Kon() cout<<"destruktor klasy Kon...\n";} virtual void Glos() const cout<<"ihahahaha!!!\n";} virtual void Sen() const cout<<"kon spi!!!\n";} virtual void Jedz() const cout<<"kon sie pasie!!!\n";} virtual void Ruch() const cout<<"kon galopuje!!!\n";} class Pies: public Ssak Pies() cout<<"konstruktor klasy Pies...\n";} virtual ~Pies() cout<<"destruktor klasy Pies...\n";} 24

virtual void Glos() const cout<<"hau!!\n";} virtual void Sen() const cout<<"pies spi!!!\n";} virtual void Jedz() const cout<<"pies je!!!\n";} virtual void Ruch() const cout<<"pies biegnie!!!\n";} void main() Zwierze *ptr = 0; int wybor; bool Wyjscie = false; while (Wyjscie == false) cout<<"(1) Pies (2)Kon (3)Ryba (0)Wyjscie : "; cin>>wybor; switch(wybor) case 1: ptr = new Pies; break; case 2: ptr = new Kon; break; case 3: ptr = new Ryba; break; 25

default: Wyjscie = true; break; } if (Wyjscie == false) ptr->glos(); ptr->jedz(); ptr->rozmnazanie(); ptr->ruch(); ptr->sen(); delete ptr; cout<<endl; } } system("pause"); } 26

(1) Pies (2)Kon (3)Ryba (0)Wyjscie : 1 Konstruktor klasy Zwierze Konstruktor klasy Ssak... Konstruktor klasy Pies... Hau!! Pies je!!! Rozmnazanie klasy Ssak... Pies biegnie!!! Pies spi!!! Destruktor klasy Pies... Destruktor klasy Ssak Destruktor klasy Zwierze (1) Pies (2)Kon (3)Ryba (0)Wyjscie : 2 Konstruktor klasy Zwierze Konstruktor klasy Ssak... Konstruktor klasy Kon... Ihahahaha!!! Kon sie pasie!!! Rozmnazanie klasy Ssak... Kon galopuje!!! Kon spi!!! Destruktor klasy Kon... Destruktor klasy Ssak Destruktor klasy Zwierze (1) Pies (2)Kon (3)Ryba (0)Wyjscie : 3 Konstruktor klasy Zwierze Konstruktor klasy Ryba... Ryba milczy... Ryba je... Ryba sklada jaja... Ryba plywa... Ryba spi... Destruktor klasy Ryba Destruktor klasy Zwierze (1) Pies (2)Kon (3)Ryba (0)Wyjscie : 0 Press any key to continue... 27

void main() //Zwierze zwierz; //Ssak krolik; cout<<endl; Pies Azor; cout<<endl; Azor.Glos(); Azor.Jedz(); Azor.Rozmnazanie(); Azor.Ruch(); Azor.Sen(); Azor.~Pies(); cout<<endl; Kon Lysek; Lysek.Glos(); Lysek.Jedz(); Lysek.Rozmnazanie(); Lysek.Ruch (); Lysek.Sen(); Lysek.~Kon(); cout<<endl; 28

Ryba karp; karp.glos(); karp.jedz(); karp.rozmnazanie(); karp.ruch(); karp.sen(); karp.~ryba(); cout<<endl; system("pause"); } 29

Konstruktor klasy Zwierze Konstruktor klasy Ssak... Konstruktor klasy Pies... Hau!! Pies je!!! Rozmnazanie klasy Ssak... Pies biegnie!!! Pies spi!!! Destruktor klasy Pies... Destruktor klasy Ssak Destruktor klasy Zwierze Konstruktor klasy Zwierze Konstruktor klasy Ssak... Konstruktor klasy Kon... Ihahahaha!!! Kon sie pasie!!! Rozmnazanie klasy Ssak... Kon galopuje!!! Kon spi!!! Destruktor klasy Kon... Destruktor klasy Ssak Destruktor klasy Zwierze Konstruktor klasy Zwierze Konstruktor klasy Ryba... Ryba milczy... Ryba je... Ryba sklada jaja... Ryba plywa... Ryba spi... Destruktor klasy Ryba Destruktor klasy Zwierze Press any key to continue... 30