Advertisement
AntonioVillanueva

Résolution dynamique des liens

Feb 25th, 2016
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. //résolution dynamique des liens  methode virtuelle + ref. ou pointeur
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. class Personnage {
  6.     private:
  7.         string nom;
  8.     public:
  9.         Personnage ();
  10.         virtual string get_nom() const;
  11.         virtual void rencontrer(const Personnage& p) const
  12.             { cout << "Bonjour !" << endl; };
  13. };
  14.     Personnage::Personnage ():nom("Personnage "){};
  15.     string Personnage::get_nom() const{return nom;};
  16.  
  17. //----------------------------------------------------------------------
  18.  
  19. class Guerrier : public Personnage {
  20.     private:
  21.         string nom;
  22.  
  23.     public:
  24.         Guerrier();
  25.         string get_nom() const;
  26.         void rencontrer(const Personnage& p) const;
  27.  
  28. };
  29.         Guerrier::Guerrier ():nom("Guerrier"){};
  30.         string Guerrier::get_nom() const{return nom;};
  31.         void Guerrier::rencontrer(const Personnage& p) const{ cout << "Boum !" << endl; }      
  32. //----------------------------------------------------------------------
  33. class Voleur : public Personnage {
  34.     private:
  35.         string nom;
  36.     public:
  37.         Voleur ();
  38.         string get_nom() const;
  39.         void rencontrer(const Personnage& p) const;
  40.  
  41. };
  42.         Voleur::Voleur ():nom("Voleur"){};
  43.         string Voleur::get_nom() const{return nom;};
  44.         void Voleur::rencontrer(const Personnage& p) const{ cout << "je te pique le sous!" << endl; }      
  45. //----------------------------------------------------------------------
  46. //----------------------------------------------------------------------
  47.  
  48. void faire_rencontrer(Personnage const& un,Personnage const& autre)
  49. {
  50.     cout << un.get_nom() << " rencontre "<< autre.get_nom() << " : ";
  51.     un.rencontrer(autre);
  52. }
  53.  
  54. //----------------------------------------------------------------------
  55. int main() {
  56.     Guerrier g;
  57.     Voleur v;
  58.     Personnage p1;
  59.     Personnage p2;     
  60.     faire_rencontrer(g, v);
  61.     faire_rencontrer(p1, p2);  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement