Typeid

Résolu
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 19 mai 2005 à 16:31
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 - 19 mai 2005 à 19:44
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

steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
19 mai 2005 à 18:30
A n'est pas polymorphique donc typeid renvoi le type statique de 'a'.
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
19 mai 2005 à 19:26
Ca veut dire qu'il faut au moins une fonction vituelle dans la classe A?
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
19 mai 2005 à 19:44
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.
0
Rejoignez-nous