Héritage privé et polymorphisme
Bonjour,
je suis tombé sur un test C++ avec la question suivante :
Qu'affiche le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| class A
{
public : virtual void f() {printf("A");}
};
class B : A
{
public : void f() {printf("B");}
};
A* a = new B();
a->f(); |
Et la réponse est... ne compile pas.
En fait on ne peut pas faire car B hérite de A en privé.
Mais j'aimerais comprendre pourquoi l'héritage privé interdit ceci puisque je pensais tout ce que faisait l'héritage privé, c'était de mettre tous les attributs et méthodes de A en privé dans B ?
Merci de m'éclairer :)