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

 


Dernière réponse
Sujet : surcharge de fonctions C++
sebmarley Merci seblamb!!
bon va falloir que j'en discute avec mon patron la (c'est lui qui m'a dit de faire de cette facon donc faut qu'il assume ;)  )

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
sebmarley Merci seblamb!!
bon va falloir que j'en discute avec mon patron la (c'est lui qui m'a dit de faire de cette facon donc faut qu'il assume ;)  )
seblamb Tu ne pouras pas utiliser le polymorphisme dans ce cas, ou alors il faut changer ton model objet.
 
Tes objets IDT_xxxxxx sont sockés quelques part et tu souhaites faire un tranformtation dessus cet liste objet(graphicize).  
Une classe de sockage sert à conserver cette liste objet et à en assurer l'intégrité. Un example bien connu est la classe Vector qui en inclus dans la STL.
sebmarley Qu'est-ce que tu appelle exactement classe de stockage?
Sinon j'ai deja essaye la deuxieme solution, mais on me l'a refusee parce qu'il faut que j'utilise le polymorphisme a fond...
seblamb En tout cas ne peux pas donc faire comme tu en avais l'intention.
C'est clair que les compilateur ne peut pas faire les choix à ta place. Donc la solution sera un peu plus compliqué.
 
Je te propose 2 solutions, il y en a surement d'autres:
 * faire un classe de stockage par type d'objet + un classe de sotckage générale qui stocke les classes de stockages ( en plus tu gagne en optimisation). Comme ça tu sais quelle fonction "graphicize" il faut appeller.
 * Tu fais un fonction "graphicize_general" qui appelle la bonne fonction 'graphicize' en fonction du type des objets.
sebmarley malheureusement, je suis oblige de separer completement les classes qui sont en parametres et tout ce qui fait partie de la partie graphique, dont graphicize :(
seblamb La meilleur solution est intégrer la fonction "graphicize" en temps que membre d'une des classes qui sont dans les arguments.
Comme ça c'est automatique.
sebmarley voila les fonctions :
void graphicize (ITP_Position * position, ITP_Disk * disk)
 
void graphicize (ITP_Configuration * configuration, ITP_Triangle_Equilateral * triangle)
 
et l'appel:
graphicize(*((*index)->state), *((*index)->geometry));
 
 
et enfin l'erreur :
main/test.cc:189: call of overloaded `graphicize (ITP_State *&, ITP_Geometry *&)' is ambiguous
main/test.cc:127: candidates are: graphicize(ITP_Position *, ITP_Disk *) <near match>
main/test.cc:142:                 graphicize(ITP_Configuration *, ITP_Triangle_Equilateral *) <near match>
 
en sachant que position et configuration sont des classes filles de state et idem avec disk,triangle et geometry.
LetoII certainement mais ce serait plus facile si tu envoyé le code par ce que là comme ça à vide....
seblamb Donne le le protoptype de ta fonction.
Et le libélé exacte de l'erreur.
sebmarley Bonjour,
je dois surcharger une fonction qui utilise des pointeurs(de type differents lors de l'appel). J'ai essaye d'en creer une mais il y a une erreur a la compilation, a cause de l'ambiguite entre les 2 fonctions. Est ce qu'il y a un moyen de contourner le probleme?

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