Advertisement
Coriic

Untitled

Jun 16th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. class Zwierze{
  5. public:
  6. virtual Zwierze* copy() const;
  7. };
  8.  
  9. class Kot: public Zwierze{
  10. public:
  11. Zwierze* copy() const{
  12. return new Kot(*this);
  13. }
  14. };
  15.  
  16. class Pies: public Zwierze{
  17. public:
  18. Zwierze* copy() const{
  19. return new Pies(*this);
  20. }
  21. };
  22.  
  23. class Kura: public Zwierze{
  24. public:
  25. Zwierze* copy() const{
  26. return new Kura(*this);
  27. }
  28. };
  29.  
  30. class Zagroda: std::vector<Zwierze*>{
  31. public:
  32. ~Zagroda();
  33. Zagroda(const Zagroda&);
  34. Zagroda& operator=(const Zagroda&);
  35. };
  36.  
  37. Zagroda::~Zagroda(){
  38. this->clear();
  39. }
  40.  
  41. Zagroda::Zagroda(const Zagroda& copy) {
  42. Zagroda::const_iterator it;
  43. for(it=copy.begin(); it!=copy.end(); it++){
  44. this->push_back((*it)->copy());
  45. }
  46. }
  47.  
  48. Zagroda& Zagroda::operator=(const Zagroda& copy) {
  49. this->clear();
  50. Zagroda::const_iterator it;
  51. for(it=copy.begin(); it!=copy.end(); it++){
  52. this->push_back((*it)->copy());
  53. }
  54. }
  55.  
  56. int main(){
  57. return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement