Typeid [Résolu]

Signaler
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
-
J'ai peut être mal compris l'utilité de cet opérateur, je ne comprends
pas pourquoi l'exemple ci dessous m'affiche class A et pas class B:



#include

using namespace std;

class A{};

class B: public A{};

int main()

{

A* a = new B();

cout << typeid(*a).name();

delete a;

}

3 réponses

Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
A n'est pas polymorphique donc typeid renvoi le type statique de 'a'.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ca veut dire qu'il faut au moins une fonction vituelle dans la classe A?
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
Tout simplement, il est aussi possible de forcer le compilateur a
ajouter des informations de type dynamique pour les classes non
polymorphique, à voir dans la documentation.