Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Sport
  6. {
  7. public:
  8.     string lieu = "";
  9.     Sport() = default;
  10.     Sport(string lieu) : lieu(lieu) {};
  11.     //Destructeur, peut etre virtuel
  12.     virtual ~Sport() { cout << "Destructeur Sport\n"; };
  13.     //Fonction virtuelle pure
  14.     virtual void Pratique() = 0;
  15.  
  16.     /*
  17.         A partir du moment ou une fonction virtuelle pure existe dans une classe, cette classe devient une casse abstraite
  18.         En consequence : Cette classe ne peux plus instancier d'objet, elle sert uniuement a derriver une sous classe
  19.     */
  20. };
  21.  
  22. class Judo : public Sport
  23. {
  24. public:
  25.     bool kimono;
  26.     Judo() = default;
  27.     Judo(string lieu, bool kimono) : Sport(lieu), kimono(kimono) {};
  28.     ~Judo() { cout << "Destructeur Judo\n"; };
  29.     void Pratique() { cout << "Pratique le Judo\n"; }
  30. };
  31.  
  32. class Tennis : public Sport
  33. {
  34. public:
  35.     bool raquette;
  36.     Tennis() = default;
  37.     Tennis(string lieu, bool raquette) : Sport(lieu), raquette(raquette) {};
  38.     ~Tennis() { cout << "Destructeur raquette\n"; };
  39.     void Pratique() { cout << "Pratique le raquette\n"; }
  40. };
  41.  
  42. class Foot : public Sport
  43. {
  44. public:
  45.     bool Ballon;
  46.     Foot() = default;
  47.     Foot(string lieu, bool Ballon) : Sport(lieu), Ballon(Ballon) {};
  48.     ~Foot() { cout << "Destructeur FootBall\n"; };
  49.     void Pratique() { cout << "Pratique le FootBall\n"; }
  50. };
  51.  
  52. class Natation : public Sport
  53. {
  54. public:
  55.     bool Eau;
  56.     Natation() = default;
  57.     Natation(string lieu, bool Eau) : Sport(lieu), Eau(Eau) {};
  58.     ~Natation() { cout << "Destructeur Natation\n"; };
  59.     void Pratique() { cout << "Pratique la natation\n"; }
  60. };
  61.  
  62. class Cyclisme : public Sport
  63. {
  64. public:
  65.     bool velo;
  66.     Cyclisme() = default;
  67.     Cyclisme(string lieu, bool velo) : Sport(lieu), velo(velo) {};
  68.     ~Cyclisme() { cout << "Destructeur cyclisme\n"; };
  69.     void Pratique() { cout << "Pratique le cyclisme\n"; }
  70. };
  71.  
  72. int main()
  73. {
  74.     Sport* sportif[10];
  75.  
  76.     //Un tableau d'objet différents
  77.     for (int i = 0; i < 10; i++)
  78.     {
  79.         switch (rand() % 5)
  80.         {
  81.         case 0: sportif[i] = new Judo; break;
  82.         case 1: sportif[i] = new Tennis; break;
  83.         case 2: sportif[i] = new Foot; break;
  84.         case 3: sportif[i] = new Natation; break;
  85.         case 4: sportif[i] = new Cyclisme; break;
  86.  
  87.         }
  88.     }
  89.     //Action des sportifs chacun selon leur type
  90.     for (int i = 0; i < 10; i++)
  91.     {
  92.         sportif[i]->Pratique();
  93.     }
  94.  
  95.     cout << "------------" << endl;
  96.  
  97.     for (int i = 0; i < 10; i++)
  98.     {
  99.         delete sportif[i];
  100.     }
  101.  
  102.     system("PAUSE");
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement