J'utilise Dev CPP et j'ai une classe (Item) qui hérite de deux classes mères (TstCl1 et TstCl2). La déclaration de Item est donc :
Question 1 : J'ai observé que le navigateur de classe n'indique pas, pour la classe Item, quelles sont les classes héritées de TstCl1 et TstCl2 (par contre, il le fait correctement si Item n'hérite qu'une seule classe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class Item : public TstCl1, public TstCl2 { ... };
S'agit-il d'un problème répertorié ou est-ce une mauvaise configuration de ma part ?
Question 2 : TstCl1 contient une méthode virtuelle (draw()) qui est implémentée dans chaque classe qui hérite de TstCl1 (par exemple la classe Test, qui hérite uniquement de TstCl1 et la classe Item qui hérite de TstCl1 et TstCl2).
Supposons maintenant:
J'observe que (TstCl1*)tst->draw() fonctionne mais pas (TstCl1*)itm->draw(). Autrement dit, l'héritage mutliple et les méthodes virtuelles ne semblent pas faire bon ménage ... Y a-t-il quelque chose que je n'ai pas saisi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Test *tst; tst=new Test(); Item *itm; itm=new Item();
Merci d'avance pour votre aide.
Christian
Partager