Dynamic_cast ne marche pas sous Visual C++ !!

Résolu
feanor11 Messages postés 28 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 septembre 2005 - 19 juin 2005 à 20:04
feanor11 Messages postés 28 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 septembre 2005 - 19 juin 2005 à 20:28
La fonction de cast dynamic_cast ne marche pas sous Visual C++ 6.0, alors qu'elle marche très bien sous Dev C++.



<hr size="2" width="100%">#include

#include <typeinfo>

using namespace std ;



class A

{

public :

virtual void affiche () {}

} ;



class B : public A

{

public :

void affiche () {}

} ;



int main ()

{

B* pb = new B ;

A* pa ;

pa = pb ;

if (dynamic_cast(pa) != NULL)

cout << "oui\n" ;

else

cout << "non\n" ;



system ("PAUSE") ;

return 0 ;

}


<hr size="2" width="100%">

Sous Dev C++, il m'affiche "oui", sous Visual C++ 6.0, il me met d'abord un message à la compilation :

<hr size="2" width="100%">C:\Documents and
Settings\Frédéric\Mes documents\Mes jeux\test\test.cpp(22) : warning
C4541: 'dynamic_cast' used on polymorphic type 'class A' with /GR-;
unpredictable behavior may result


<hr size="2" width="100%">Puis, il me met un message d'erreur à l'execution !



A quoi est-ce dù ? (J'aimerais bien pouvoir continuer à utiliser Visual C++ !)

3 réponses

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
19 juin 2005 à 20:19
salut,

t'as une option a cocher dans les settings de ton projet sous vc6 c'est
qqc du genre activer les informations de type a l'execution (du moins
dans vs7 ya ca)



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 juin 2005 à 20:27
L'option /GR, comme écrit dans le warning en fait
0
feanor11 Messages postés 28 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 septembre 2005
19 juin 2005 à 20:28
Ok merci ;



C'était la case "Enable Run-Time Type Information (RTTI)", onglet "C/C++", fenêtre "Settings"
0
Rejoignez-nous