Bonjour à tous,
je vais donner le code puisqu'il est très simple :

Une classe mère, qui contient un constructeur qui appelle une méthode virtuelle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
class A{
public:
  A(){
    test();
  }
 
  virtual void test(){
    std::cout << "classe A";
  }
};
Puis une classe fille qui ne fait que redéfinir la méthode virtuelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
class B : public A{
public:
    void test() {
    std::cout << "classe B";
  }
};
Le main ne contient que la création d'un objet B, qui provoque l'affichage du message : "classe A".
Or je voudrais le contraire, vennant de Java j'utilisais souvent ce mécanisme pour éviter de la duplication de code.

Comment palier à ce résultat?
Merci à toutes réponses.