Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3694 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[C++] pb de dynamic cast

n°852219
Eugenics
Posté le 16-09-2004 à 23:09:17  profilanswer
 

Reprise du message précédent :
jai pas le drois de faire  
 
Individu *i = &(VecteurIndividus[i]);
et ensuite basta?  
 
de mem alors comment je peux faire pour lui faire comprendre que mon individu est un idividuMouvant a ma fonction evalue ??
 
car dynamic_cast caste que des pointeurs ??

mood
Publicité
Posté le 16-09-2004 à 23:09:17  profilanswer
 

n°852250
chrisbk
-
Posté le 16-09-2004 à 23:41:44  profilanswer
 


 
Merci mon brave, vous etes bien aimable


---------------
NP: HTTP Error 764 Stupid coder found
n°852279
Eugenics
Posté le 16-09-2004 à 23:58:19  profilanswer
 

lol :) sauf que maintenant non :) depuis que j'ai modifié le tout :/  

n°852300
Taz
bisounours-codeur
Posté le 17-09-2004 à 00:22:14  profilanswer
 

non, ça cast aussi les références.
 
pour le if, on peut écrire légalement
 
if( D* d = dynamyc_cast<D*>( b ) )
{ /* travailler avec d */ }

n°852366
Eugenics
Posté le 17-09-2004 à 08:24:11  profilanswer
 

ben c'est ce que je fais :/ (cf post page d'avant)  
et ca change que dalle.... non selon LeGreg ca viens de mon vector :/ mais j'aurrais aime qu'il developpe un peut pour comprendre pkoi ca merdouille

n°852372
Taz
bisounours-codeur
Posté le 17-09-2004 à 08:39:13  profilanswer
 

si le dynamic_cast foire, c'est qu'il foire voilàa tout ... si tu veux t'assurer de son type de manière sure
 
#include <typeinfo>
 
std::cerr << typeid(ptr).name() << '\n';

n°852391
Lam's
Profil: bas.
Posté le 17-09-2004 à 09:10:53  profilanswer
 

Taz a écrit :

si le dynamic_cast foire, c'est qu'il foire voilàa tout ...


 
Sous Visual Studio, la RTTI n'est pas enclenchée par défaut (puisqu'il y a les RuntimeClass de la MFC...).
 
Late edit:  
Of course, le problème ici, c'est qu'il s'agit d'un  
std::vector<Individu>, et non d'un std::vector<Individu *>
 
Donc, ce qui est dans le vector, c'est bel et bien des Individus tout court. Même si tu as un IndividuMouvant, lorsque tu le mets dans ton vector, il se transforme en Individu (par recopie).
 
Pour avoir du polymorphisme dans les containers de la stl (dont vector), il faut soit utiliser des pointeurs, soit utiliser des objets qui contiennent des pointeurs (des shared_ptrs par exemple).


Message édité par Lam's le 17-09-2004 à 10:49:25
n°852626
Taz
bisounours-codeur
Posté le 17-09-2004 à 14:17:25  profilanswer
 

ah ben ouais évidemment, j'avais pas regardé le code, mais bon, si à la base il a pas compris que le polymorphisme passe par les pointeurs/références, c'est pas la peine d'aller plus loin

n°852866
LeGreg
Posté le 17-09-2004 à 19:19:35  profilanswer
 

Eugenics a écrit :


de mem alors comment je peux faire pour lui faire comprendre que mon individu est un idividuMouvant a ma fonction evalue ??


 
tu ne peux pas les faire passer pour ce qu'ils ne sont pas.
(pardon, en C++ tu peux mais si tu veux faire des programmes qui marchent il ne vaut mieux pas..)
 
Si tu stockes des individus_toutcourt ils ne se transformeront pas magiquement en individus_mouvants. C'est pas du tout un problème de dynamic cast..

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
creation dynamic de PDF à partir d'un fichier Word sur un serveur iis?[javascript]tableau dynamic
probleme de cast :!Cast Image->BufferedImage après un Toolkit.getImage
cast de tquery[ClassLoader][Cast] pb de cast - 2 ClassLoader différents
probleme pointeur void alors qu'un cast de char* marche :\[Résolu] Pb de cast à partir d'un Object
[resolu]cast de composant graphique[C] cast d'un void*
Plus de sujets relatifs à : [C++] pb de dynamic cast


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)