Dev CPP et héritage multiple
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 :
Code:
1 2 3 4
| class Item : public TstCl1, public TstCl2
{
...
}; |
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).
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:
Code:
1 2 3 4 5
| Test *tst;
tst=new Test();
Item *itm;
itm=new Item(); |
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 ?
Merci d'avance pour votre aide.
Christian