Bonjour,

je suis tombé sur un test C++ avec la question suivante :
Qu'affiche le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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