Bonjour,

Si j'ai par exemple le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
class A{...}
class B : public A{...}
Et que je crée un vecteur de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
std::vector<A*> vect;
Lorsque je crée un objet de type B :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
B* b = new B(...);
Que je l'introduis dans le vecteur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
vect.puch_back(b);
Et que je teste son type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
printf("type : %s\n", typeid(vect[emplacement_de_b]).name())
La console m'affiche :

Pourquoi ? Pourquoi pas class B ? Et donc, comment faire pour détecter la présence d'une instance de la sous-classe B dans un vecteur de A ? Et comment forcer alors l'appel d'une méthode de B, qui surdéfinit une méthode de A ?

Merci d'avance