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

feanor11 28 Messages postés mercredi 6 octobre 2004Date d'inscription 1 septembre 2005 Dernière intervention - 19 juin 2005 à 20:04 - Dernière réponse : feanor11 28 Messages postés mercredi 6 octobre 2004Date d'inscription 1 septembre 2005 Dernière intervention
- 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
cosmobob 706 Messages postés mardi 30 décembre 2003Date d'inscription 27 janvier 2009 Dernière intervention - 19 juin 2005 à 20:19
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+

Merci cosmobob 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cosmobob
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 19 juin 2005 à 20:27
0
Merci
L'option /GR, comme écrit dans le warning en fait
Commenter la réponse de vecchio56
feanor11 28 Messages postés mercredi 6 octobre 2004Date d'inscription 1 septembre 2005 Dernière intervention - 19 juin 2005 à 20:28
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.