Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. class Zwierze
  4. {
  5. string m_imie;
  6.  
  7. public:
  8. Zwierze(string imie):
  9. m_imie{imie}
  10. {
  11.  
  12. }
  13.  
  14.  
  15.  
  16. virtual string dajRodzajZwierzecia() const
  17. {
  18. return "Zwierzatko:";
  19. }
  20.  
  21. string naLancuch()
  22. {
  23. return dajRodzajZwierzecia()+m_imie;
  24. }
  25.  
  26.  
  27. };
  28.  
  29. class Pies:public Zwierze
  30. {
  31.  
  32. public:
  33. Pies(string imie):Zwierze(imie)
  34. {
  35.  
  36. }
  37. void szczekaj()
  38. {
  39. cout<<"hau!"<<endl;
  40. }
  41.  
  42. void dajLape()
  43. {
  44. cout<<"daje lape!"<<endl;
  45. }
  46. string dajRodzajZwierzecia() const
  47. {
  48. return "Pies:";
  49. }
  50.  
  51. };
  52.  
  53. class SchroniskoDlaZwierzat
  54. {
  55. private:
  56. Zwierze* zwierzeta[100];
  57.  
  58. public:
  59. SchroniskoDlaZwierzat(){};
  60. void zabierzDoSchroniska(Zwierze *z, int numer)
  61. {
  62.  
  63. zwierzeta[numer]=z;
  64.  
  65. cout<<"dodaje\n";
  66. }
  67.  
  68. Zwierze* przygarnijZwierzatko(int numer)
  69. {
  70. return zwierzeta[numer];
  71. }
  72. };
  73.  
  74. int main()
  75. {
  76. Zwierze z1("pokemon");
  77. cout<<z1.naLancuch()<<endl;
  78.  
  79. Pies p1("bombel");
  80. p1.dajLape();
  81. p1.szczekaj();
  82. cout<<p1.naLancuch()<<endl<<endl;
  83.  
  84. Zwierze &ref_zwierzatko=z1;
  85. Zwierze &ref_Pies=p1;
  86.  
  87. cout<<ref_zwierzatko.naLancuch()<<endl;
  88. cout<<ref_Pies.naLancuch()<<endl<<endl;
  89.  
  90. Zwierze *wsk_zwierz;
  91. Zwierze *wsk_pies;
  92.  
  93. wsk_zwierz=&z1;
  94. wsk_pies=&p1;
  95.  
  96. cout<<wsk_zwierz->naLancuch()<<endl;
  97. cout<<wsk_pies->naLancuch()<<endl;
  98.  
  99.  
  100.  
  101.  
  102. Pies* wsk_pies2=dynamic_cast<Pies*>(wsk_zwierz);
  103. Pies* wsk_pies3=dynamic_cast<Pies*>(wsk_pies);
  104.  
  105.  
  106. if(wsk_pies2!=nullptr)
  107. cout<<wsk_pies2->naLancuch()<<endl;
  108. else
  109. cout<<"null"<<endl;
  110.  
  111. if(wsk_pies3!=nullptr)
  112. cout<<wsk_pies3->naLancuch()<<endl;
  113. else
  114. cout<<"null"<<endl;
  115.  
  116. try
  117. {
  118. Pies &ref_Pies = dynamic_cast<Pies&>(ref_zwierzatko);
  119. }
  120.  
  121. catch(bad_cast &blad)
  122. {
  123. cout<<"nieprawidlowa konwersja"<<endl;
  124. }
  125.  
  126. cout<<"schronisko"<<endl;
  127.  
  128. SchroniskoDlaZwierzat schronisko;
  129.  
  130. Pies p11("Pies11");
  131. Pies p12("Pies12");
  132. Pies p13("Pies13");
  133. Pies p14("Pies14");
  134.  
  135. schronisko.zabierzDoSchroniska(&p11,1);
  136. schronisko.zabierzDoSchroniska(&p12,2);
  137. schronisko.zabierzDoSchroniska(&p13,3);
  138. schronisko.zabierzDoSchroniska(&p14,4);
  139.  
  140. dynamic_cast<Pies*>(schronisko.przygarnijZwierzatko(1))->dajLape();
  141. cout<<schronisko.przygarnijZwierzatko(2)->naLancuch();
  142.  
  143.  
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement