Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. class Participant
  2. {
  3. public:
  4.     virtual void tipareste() = 0;
  5.     bool eVoluntar();
  6.     virtual ~Participant() { }
  7. };
  8.  
  9. class Personal:public Participant
  10. {
  11. private:
  12.     std::string nume;
  13. public:
  14.     Personal(std::string nume) :nume{ nume } {}
  15.     void tipareste() override
  16.     {
  17.         std::cout << nume;
  18.     }
  19. };
  20. class Administrator :public Personal
  21. {
  22. public:
  23.     Administrator(std::string nume) :Personal{ nume } {}
  24.     void tipareste() override
  25.     {
  26.         Personal::tipareste();
  27.         std::cout << "\nAdministrator";
  28.     }
  29.  
  30.  
  31. };
  32. class Director : public Personal
  33. {
  34. public:
  35.     Director(std::string nume) :Personal{ nume } {}
  36.     void tipareste() override
  37.     {
  38.         Personal::tipareste();
  39.         std::cout << "\nDirector";
  40.     }
  41.  
  42. };
  43. class Angajat :public Participant
  44. {
  45. private:
  46.     Participant* ala;
  47. public:
  48.     Angajat(Participant* ala):ala{ala}{}
  49.     void tipareste() override
  50.     {
  51.         ala->tipareste();
  52.         std::cout << "\nangajat";
  53.     }
  54.     bool eVoluntar()
  55.     {
  56.         return false;
  57.     }
  58. };
  59.  
  60. class ONG
  61. {
  62. private:
  63.     std::vector<Participant*> cativa;
  64. public:
  65.     void add(Participant* par)
  66.     {
  67.         cativa.pb(par);
  68.     }
  69.     std::vector<Participant*> getAll(std::string parametru)
  70.     {
  71.         std::vector<Participant*> aia;
  72.         std::for_each(cativa.begin(), cativa.end(), [&aia,&parametru](Participant* ptr)
  73.         {
  74.             if (parametru == "angajat")
  75.             {
  76.                 if (dynamic_cast<Angajat*>(ptr))
  77.                     aia.pb(ptr);
  78.             }
  79.             else
  80.                 if (!dynamic_cast<Angajat*>(ptr))
  81.                     aia.pb(ptr);
  82.         });
  83.         return aia;
  84.     }
  85. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement