OVH Cloud OVH Cloud

dynamic_cast

2 réponses
Avatar
Etienne Rousee
Bonjour,

Quelqu'un pourrait me dire pourquoi le code suivant:

Composite *Test = dynamic_cast<Composite *> (Avant->_Bloc[i]);

me donne le warning :
warning C4541: 'dynamic_cast' used on polymorphic type 'class
ObjetGraphique' with /GR-;
unpredictable behavior may result

et plante à l'exécution (avec VC++6.0) ?

Où : "Avant" est de type "Composite *"
"Composite" hérite de "ObjetGraphique" qui est abstraite.
"_Bloc" est un attribut de "Composite" et est un Vector de
"ObjetGraphique *".

Et puis je m'en sortir sans rajouter un attribut booléen à "ObjetGraphique"
?

Etienne

2 réponses

Avatar
Twxs
Etienne Rousee wrote:
Bonjour,
salut


Quelqu'un pourrait me dire pourquoi le code suivant:

Composite *Test = dynamic_cast<Composite *> (Avant->_Bloc[i]);

me donne le warning :
warning C4541: 'dynamic_cast' used on polymorphic type 'class
ObjetGraphique' with /GR-;


active la gestion des RTTI dans les options de comilation de ton projet
(enable RTTI) il s'agit de l'option /GR- comme te l'indique ton compilateur.


Twxs

Avatar
Etienne Rousee
"Twxs" a écrit ...
active la gestion des RTTI dans les options de comilation de ton projet
(enable RTTI) il s'agit de l'option /GR- comme te l'indique ton
compilateur.


Ça marche ! Merci beaucoup.

Etienne