Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Sport
- {
- public:
- string lieu = "";
- Sport() = default;
- Sport(string lieu) : lieu(lieu) {};
- //Destructeur, peut etre virtuel
- virtual ~Sport() { cout << "Destructeur Sport\n"; };
- //Fonction virtuelle pure
- virtual void Pratique() = 0;
- /*
- A partir du moment ou une fonction virtuelle pure existe dans une classe, cette classe devient une casse abstraite
- En consequence : Cette classe ne peux plus instancier d'objet, elle sert uniuement a derriver une sous classe
- */
- };
- class Judo : public Sport
- {
- public:
- bool kimono;
- Judo() = default;
- Judo(string lieu, bool kimono) : Sport(lieu), kimono(kimono) {};
- ~Judo() { cout << "Destructeur Judo\n"; };
- void Pratique() { cout << "Pratique le Judo\n"; }
- };
- class Tennis : public Sport
- {
- public:
- bool raquette;
- Tennis() = default;
- Tennis(string lieu, bool raquette) : Sport(lieu), raquette(raquette) {};
- ~Tennis() { cout << "Destructeur raquette\n"; };
- void Pratique() { cout << "Pratique le raquette\n"; }
- };
- class Foot : public Sport
- {
- public:
- bool Ballon;
- Foot() = default;
- Foot(string lieu, bool Ballon) : Sport(lieu), Ballon(Ballon) {};
- ~Foot() { cout << "Destructeur FootBall\n"; };
- void Pratique() { cout << "Pratique le FootBall\n"; }
- };
- class Natation : public Sport
- {
- public:
- bool Eau;
- Natation() = default;
- Natation(string lieu, bool Eau) : Sport(lieu), Eau(Eau) {};
- ~Natation() { cout << "Destructeur Natation\n"; };
- void Pratique() { cout << "Pratique la natation\n"; }
- };
- class Cyclisme : public Sport
- {
- public:
- bool velo;
- Cyclisme() = default;
- Cyclisme(string lieu, bool velo) : Sport(lieu), velo(velo) {};
- ~Cyclisme() { cout << "Destructeur cyclisme\n"; };
- void Pratique() { cout << "Pratique le cyclisme\n"; }
- };
- int main()
- {
- Sport* sportif[10];
- //Un tableau d'objet différents
- for (int i = 0; i < 10; i++)
- {
- switch (rand() % 5)
- {
- case 0: sportif[i] = new Judo; break;
- case 1: sportif[i] = new Tennis; break;
- case 2: sportif[i] = new Foot; break;
- case 3: sportif[i] = new Natation; break;
- case 4: sportif[i] = new Cyclisme; break;
- }
- }
- //Action des sportifs chacun selon leur type
- for (int i = 0; i < 10; i++)
- {
- sportif[i]->Pratique();
- }
- cout << "------------" << endl;
- for (int i = 0; i < 10; i++)
- {
- delete sportif[i];
- }
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement