feanor11
Messages postés28Date d'inscriptionmercredi 6 octobre 2004StatutMembreDernière intervention 1 septembre 2005
-
19 juin 2005 à 20:04
feanor11
Messages postés28Date d'inscriptionmercredi 6 octobre 2004StatutMembreDerniè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++ !)
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 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)