Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Zwierze
- {
- string m_imie;
- public:
- Zwierze(string imie):
- m_imie{imie}
- {
- }
- virtual string dajRodzajZwierzecia() const
- {
- return "Zwierzatko:";
- }
- string naLancuch()
- {
- return dajRodzajZwierzecia()+m_imie;
- }
- };
- class Pies:public Zwierze
- {
- public:
- Pies(string imie):Zwierze(imie)
- {
- }
- void szczekaj()
- {
- cout<<"hau!"<<endl;
- }
- void dajLape()
- {
- cout<<"daje lape!"<<endl;
- }
- string dajRodzajZwierzecia() const
- {
- return "Pies:";
- }
- };
- class SchroniskoDlaZwierzat
- {
- private:
- Zwierze* zwierzeta[100];
- public:
- SchroniskoDlaZwierzat(){};
- void zabierzDoSchroniska(Zwierze *z, int numer)
- {
- zwierzeta[numer]=z;
- cout<<"dodaje\n";
- }
- Zwierze* przygarnijZwierzatko(int numer)
- {
- return zwierzeta[numer];
- }
- };
- int main()
- {
- Zwierze z1("pokemon");
- cout<<z1.naLancuch()<<endl;
- Pies p1("bombel");
- p1.dajLape();
- p1.szczekaj();
- cout<<p1.naLancuch()<<endl<<endl;
- Zwierze &ref_zwierzatko=z1;
- Zwierze &ref_Pies=p1;
- cout<<ref_zwierzatko.naLancuch()<<endl;
- cout<<ref_Pies.naLancuch()<<endl<<endl;
- Zwierze *wsk_zwierz;
- Zwierze *wsk_pies;
- wsk_zwierz=&z1;
- wsk_pies=&p1;
- cout<<wsk_zwierz->naLancuch()<<endl;
- cout<<wsk_pies->naLancuch()<<endl;
- Pies* wsk_pies2=dynamic_cast<Pies*>(wsk_zwierz);
- Pies* wsk_pies3=dynamic_cast<Pies*>(wsk_pies);
- if(wsk_pies2!=nullptr)
- cout<<wsk_pies2->naLancuch()<<endl;
- else
- cout<<"null"<<endl;
- if(wsk_pies3!=nullptr)
- cout<<wsk_pies3->naLancuch()<<endl;
- else
- cout<<"null"<<endl;
- try
- {
- Pies &ref_Pies = dynamic_cast<Pies&>(ref_zwierzatko);
- }
- catch(bad_cast &blad)
- {
- cout<<"nieprawidlowa konwersja"<<endl;
- }
- cout<<"schronisko"<<endl;
- SchroniskoDlaZwierzat schronisko;
- Pies p11("Pies11");
- Pies p12("Pies12");
- Pies p13("Pies13");
- Pies p14("Pies14");
- schronisko.zabierzDoSchroniska(&p11,1);
- schronisko.zabierzDoSchroniska(&p12,2);
- schronisko.zabierzDoSchroniska(&p13,3);
- schronisko.zabierzDoSchroniska(&p14,4);
- dynamic_cast<Pies*>(schronisko.przygarnijZwierzatko(1))->dajLape();
- cout<<schronisko.przygarnijZwierzatko(2)->naLancuch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement