Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //résolution dynamique des liens methode virtuelle + ref. ou pointeur
- #include <iostream>
- using namespace std;
- class Personnage {
- private:
- string nom;
- public:
- Personnage ();
- virtual string get_nom() const;
- virtual void rencontrer(const Personnage& p) const
- { cout << "Bonjour !" << endl; };
- };
- Personnage::Personnage ():nom("Personnage "){};
- string Personnage::get_nom() const{return nom;};
- //----------------------------------------------------------------------
- class Guerrier : public Personnage {
- private:
- string nom;
- public:
- Guerrier();
- string get_nom() const;
- void rencontrer(const Personnage& p) const;
- };
- Guerrier::Guerrier ():nom("Guerrier"){};
- string Guerrier::get_nom() const{return nom;};
- void Guerrier::rencontrer(const Personnage& p) const{ cout << "Boum !" << endl; }
- //----------------------------------------------------------------------
- class Voleur : public Personnage {
- private:
- string nom;
- public:
- Voleur ();
- string get_nom() const;
- void rencontrer(const Personnage& p) const;
- };
- Voleur::Voleur ():nom("Voleur"){};
- string Voleur::get_nom() const{return nom;};
- void Voleur::rencontrer(const Personnage& p) const{ cout << "je te pique le sous!" << endl; }
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- void faire_rencontrer(Personnage const& un,Personnage const& autre)
- {
- cout << un.get_nom() << " rencontre "<< autre.get_nom() << " : ";
- un.rencontrer(autre);
- }
- //----------------------------------------------------------------------
- int main() {
- Guerrier g;
- Voleur v;
- Personnage p1;
- Personnage p2;
- faire_rencontrer(g, v);
- faire_rencontrer(p1, p2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement