begin process at 2012 05 29 21:00:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

problème de cast en c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème de cast en c++

lundi 17 décembre 2007 à 12:40:39 | problème de cast en c++

sneil000

Bonjour, je coince sur un problème depuis hier soir 20h... (avec une nuit de dodo entre-temps)
J'ai fait un bon nombre de recherche sur le net, sans trouver la réponse à mon problème.

1: J'utilise Visual studio 2005 (je suis obligé, c'est pour un projet)

2: Voici la partie de code qui pose problème:

[QUOTE]Figure  fig = _listeDeFigures.getIeme(choix);
GroupeFigure grp = static_cast<GroupeFigure>(fig);[/QUOTE]


GroupeFigure hérite de Figure
_listeDeFigures.getIeme(choix) renvoie une Figure, qui peut être un Carre, un Cercle, ou pour mon exemple un GroupeFigure

Dans mon cas, je sais que _listeDeFigures.getIeme() va renvoyer un GroupeFigure, mais qui a été enregistré dans la liste sous forme de Figure.

Le cast me donne cette erreur : [QUOTE]error C2440: 'static_cast' : cannot convert from 'Figure' to 'GroupeFigure'[/QUOTE]

J'ai essayé avec les autres types de cast, même avec le reinterpret_cast (considéré comme étant le plus dangereux à utiliser), mais l'erreur est toujours là..

Si vous pouvez m'aider à résoudre mon problème, je vous en serai grandement reconnaissant :)
lundi 17 décembre 2007 à 13:19:21 | Re : problème de cast en c++

luhtor

Réponse acceptée !
"Figure  fig = _listeDeFigures.getIeme(choix);"
=> C'est faux ca. Tu ne peux pas utiliser le polymorphisme en manipulant un objet de la classe de base déclaré sur la pile. Tu dois soit passer par un pointeur ou une référence:

Figure * pFig = _listeDeFigures.getIeme(choix);
GroupeFigure * pGrp = static_cast<GroupeFigure*>(pFig);

Evidemment, faut modifier ta fonction getIeme(...). L'autre version:
Figure & fig = _listeDeFigures.getIeme(choix);
GroupFigure & grp = static_cast<GroupeFigure&>(fig);

Dans les deux cas, les opérateurs de conversion sont pas nécessaires:
GroupeFigure * pFig = _listeDeFigures.getIeme(choix);
lundi 17 décembre 2007 à 14:08:03 | Re : problème de cast en c++

sneil000

Merci pour la réponse rapide.

J'ai un ami qui vient de trouvé l'erreur:

dans ma classe GroupeFigure, il n'y avait pas de constructeur qui prenait un Figure en paramètre.

Le cast marche tel que je l'avais mis. :)
lundi 17 décembre 2007 à 16:34:20 | Re : problème de cast en c++

luhtor

Non il marche pas. Si ta classe GroupeFigure possède des membres. Tu vas avoir des problèmes.
lundi 17 décembre 2007 à 16:34:49 | Re : problème de cast en c++

luhtor

Réponse acceptée !
J'oubliais de rajouter une chose: "c'est pas parce que ton programme compile, qu'il marche".
lundi 17 décembre 2007 à 21:45:38 | Re : problème de cast en c++

sneil000

finalement j'ai utilisé la solution que tu m'as proposée avec le &
et ça marche :)


-----"c'est pas parce que ton programme compile, qu'il marche"

effectivement -_-


Cette discussion est classée dans : problème, quote, cast, figure, groupefigure


Répondre à ce message

Sujets en rapport avec ce message

problème de cast non valid ... [ par loussaille ] je travaille sous visual studio voilà jai un problème pour insérer un numéro auto identifiant unique dans une base sql serveur par un formulaire Windo problème de création d'un objet sur une liste [ par Zaz16 ] Bonjour, Je travaille avec visualC++ 6.0 et les classes MFC. J'ai créé une fonction copier/coller avec un menu contextuel. Jusque là tout va bien. Je problème de cast en langage C [ par lenneth666 ] Voilà alors j'ai deux problèmes. j'ai un caractère qui a pr valeur 3 et qd je l'affecte a un entier, ce dernier prend la valeur 51 c'est à dire le co Problème de cast [ par sylvain230 ] Bonjour,J'ai créé ma DLL de hook en C++.Je l'ai inclu a mon projet vb.net.Mon problème est que :en vb.net j'aiPublic Declare Function InstallMouseHook Problème de cast [ par bizzard4 ] BonjourJe dois remettre un projet demain mais je ne suis pas capable de le finir car je ne suis pas capable de convertir du float en LPCSTR. Je ne sai Problème de cast avec template [ par xkamen ] Bonjour,Je voudrais travailler avec des templates. J'ai créé une classe template Matrix; et je voudrais savoir comment réaliser un cast dans mon progr Problème de cast [ par ksandy ] Bonjour, J'ai une interface graphique de communication série. Pour cela j'ai besoin de renseigner la vitesse de communication (Baud Rate). Mon port s' problème de dll pour VBA pour un nul [ par wismerhill__ ] Bonjour à tous, je suis grand débutant en C++ et je m'y met apres VBAJe voudrais faire une dll en c++ car VBA ne va assez vite, le problème c'est que problème lors de compilation [ par fabrice91 ] Bonjour,J'ai un programme avec des declarations telles que :#include #include et le compilateur me met des erreurs du style: fatal error C1083 : Canno Problème d'Alias dans un programme en C++ sous Builder avec base de donnée Access [ par kj_83 ] Bonjour ,Je réalise un programme de gestion de stock avec lecture et écriture dans une base de donnée Access.Pour pouvoir accéder à cette base plus fa


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,330 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales