Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- using namespace std;
- class FunkcjeZyciowe
- {
- public:
- virtual void jedz(int ilosc)=0;
- virtual void pij(int ilosc)=0;
- virtual void spij(int ilosc)=0;
- virtual void bawsie(int ilosc)=0;
- };
- class zwierze
- string imie;
- protected:
- int glod=0,pragnienie=0,zmeczenie=0,humor=0
- public:
- zwierze(string nazwisko)
- {
- imie = nazwisko;
- }
- void ustawImie(string nazwisko)
- {
- imie = nazwisko;
- }
- virtual const string dajRodzajZwierzecia()const
- {
- return "zwirzatko: ";
- }
- const string naLancuch()const
- {
- stringstream ss;
- ss << dajRodzajZwierzecia() << imie << "Glod = "<< glod
- <<"pragnienie= "<<pragnienie<<"zmeczenie= "
- <<zmeczenie<<"Humor= "<<humor;
- return ss.str();
- }
- };
- class pies: public zwierze, public FunkcjeZyciowe
- {
- public:
- pies(string nazwisko) : zwierze(nazwisko){}
- void szczekaj()
- {
- cout << "hau" << endl;
- }
- void dajLape()
- {
- cout << "Łapa dawana jest" << endl;
- }
- const string dajRodzajZwierzecia()const
- {
- return "Pies: ";
- }
- };
- class SchroniskoDlaZwierzat
- {
- private:
- zwierze* pojemnosc[100];
- public:
- void dodajZwierze(zwierze* z,int numer)
- {
- pojemnosc[numer]= z;
- }
- zwierze* dajZwierze(int numer)
- {
- return pojemnosc[numer];
- }
- };
- int main()
- {
- pies p(":D");
- zwierze zwierz(":)");
- cout << zwierz.naLancuch() << endl;
- zwierz.ustawImie(":O");
- p.szczekaj();
- p.dajLape();
- zwierze &refz = zwierz;
- zwierze &refp = p;
- cout << refz.naLancuch() << endl;
- cout << refp.naLancuch() << endl;
- zwierze *wskz = &zwierz;
- zwierze *wskp = &p;
- cout << wskp -> naLancuch() << endl;
- cout << wskz -> naLancuch() << endl;
- pies* wskp2 = dynamic_cast<pies *>(wskp);
- if(wskp2 != NULL) cout << wskp2 -> naLancuch() << endl;
- pies* wskp3 = dynamic_cast<pies *>(wskz);
- if(wskp3 != NULL) cout << wskp3 -> naLancuch() << endl;
- else cout << "Nieprawidlowy typ" << endl;
- pies& refpies2 = dynamic_cast<pies &>(refp);
- cout << refpies2.naLancuch()<<endl;
- try{
- pies& refpies3 = dynamic_cast<pies &> (refz);
- cout<<refpies3.naLancuch()<<endl;
- }
- catch(bad_cast &bc)
- {
- cout<<"nieprawidlowy typ2: "<<endl;
- cout<<bc.what()<<endl;
- }
- SchroniskoDlaZwierzat schronisko;
- pies biezeg1("Bzizgo");
- pies biezeg2("yomama");
- pies biezeg3("papaja");
- pies *wskbiez1 = &biezeg1;
- pies *wskbiez2 = &biezeg2;
- pies *wskbiez3 = &biezeg3;
- schronisko.dodajZwierze(wskbiez1,0);
- schronisko.dodajZwierze(wskbiez2,1);
- schronisko.dodajZwierze(wskbiez3,2);
- for(int i=0;i<3;i++)
- dynamic_cast<pies*>(schronisko.dajZwierze(i))->szczekaj();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement