Dynamic_cast ne marche pas sous Visual C++ !! [Résolu]

Messages postés
28
Date d'inscription
mercredi 6 octobre 2004
Dernière intervention
1 septembre 2005
- - Dernière réponse : feanor11
Messages postés
28
Date d'inscription
mercredi 6 octobre 2004
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++ !)
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
706
Date d'inscription
mardi 30 décembre 2003
Dernière intervention
27 janvier 2009
3
Merci
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+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cosmobob
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
0
Merci
L'option /GR, comme écrit dans le warning en fait
Commenter la réponse de vecchio56
Messages postés
28
Date d'inscription
mercredi 6 octobre 2004
Dernière intervention
1 septembre 2005
0
Merci
Ok merci ;



C'était la case "Enable Run-Time Type Information (RTTI)", onglet "C/C++", fenêtre "Settings"
Commenter la réponse de feanor11

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.