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

  FORUM HardWare.fr
  Programmation

  surcharge de fonctions C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

surcharge de fonctions C++

n°49671
sebmarley
Posté le 30-07-2001 à 14:23:42  profilanswer
 

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?

mood
Publicité
Posté le 30-07-2001 à 14:23:42  profilanswer
 

n°49673
seblamb
Posté le 30-07-2001 à 14:25:07  profilanswer
 

Donne le le protoptype de ta fonction.
Et le libélé exacte de l'erreur.

n°49674
LetoII
Le dormeur doit se réveiller
Posté le 30-07-2001 à 14:25:24  profilanswer
 

certainement mais ce serait plus facile si tu envoyé le code par ce que là comme ça à vide....

n°49677
sebmarley
Posté le 30-07-2001 à 14:30:34  profilanswer
 

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.

n°49683
seblamb
Posté le 30-07-2001 à 14:44:45  profilanswer
 

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.

n°49686
sebmarley
Posté le 30-07-2001 à 14:49:09  profilanswer
 

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 :(

n°49692
seblamb
Posté le 30-07-2001 à 15:04:56  profilanswer
 

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.

n°49693
sebmarley
Posté le 30-07-2001 à 15:09:59  profilanswer
 

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...

n°49697
seblamb
Posté le 30-07-2001 à 15:17:02  profilanswer
 

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.

n°49703
sebmarley
Posté le 30-07-2001 à 15:25:52  profilanswer
 

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 ;)  )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  surcharge de fonctions C++

 

Sujets relatifs
Liste des fonctions dans une DLL.Avantages et fonctions du XML?
[ PHP ] :: lenteur absolue de fonctions floor et ceilUtilisation des fonctions
[Visual C++] fonctions CallbackFonctions externes en PHP
VB + Touches de fonctions[PHP] fonctions entrée/sortie, et sauvegarde de page automatique...
[quick basic] lancer deux fonctions EN MEME TEMPS[C++] Pourquoi send() des fonctions socket ne marche qu'une seule fois
Plus de sujets relatifs à : surcharge de fonctions C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR