Soit A une super-super classe dont hérite VIRTUELLEMENT deux classes B et C. Soit f une méthode publique constante de A.
Soit D une sous-classe qui hérite de B et C. (Scenario similaire à zoo.cc du MOOC)
Si nous voulons acceder à la méthode f au sein de D, nous pouvons utiliser par exemple using B::f; / using C::f;
Ou encore redefinir la méthode dans D.
Ma question est lorsqu'on envisage ce même scenario avec f déclarée comme virtuelle dans A, pour permettre le polymorphisme.
Lors de la compilation, si l'on ajoute ni using, ni re-définition de f dans D, une erreur se produit (" error: no unique final overrider for 'virtual void A::f() const' in 'D' ").
J'ai rajouté un "using B::f;" dans D mais l'erreur se produit quand même.
Pouvez-vous expliquer cela / comment corriger cette erreur?
Merci d'avance de votre réponse.
Tim Flückiger