Overload ou void*

Résolu
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 - 11 févr. 2008 à 17:00
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 - 12 févr. 2008 à 15:39
Salut.
Vaut-il mieu creer une fonction avec comme parametre un pointeur void et traiter chacun des type avec un overload de cette fonction ?

Peutetre y a ti-il quelque chose que j'ai mal compris ... mais théoriquement ca fait la meme chose non?

Si l'informatique été de l'alcool il y aurait des genies partout
A voir également:

7 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
12 févr. 2008 à 13:13
Les templates sont fait pour ca:

template <class T>
T Addition(const T & _p1, const T & _p2)
{
return (_p1 + _p2);
}

int main(...)
{
    int result = Addition(4, 8);
    float value = Addition<float>(2.0f, 3.14f);
return 0;
}
3
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
11 févr. 2008 à 17:22
Hein ?
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 févr. 2008 à 17:57
Comment veux tu faire la différence entre les types entré via un void * ?
On peut bien sur utiliser un second paramètre qui contiendra le type mais bon...

T'as le choix:
Soit tu fais une fonction qui prend un void * et le type en argument. Dans ce cas, faudra faire un switch case et traiter chaque type. Fera une grosse fonction et des tests seront à faire.

Soit tu fais des fonctions surchargées. Fera une multitude de fonctions mais en object, tout ceci est transparent à l'utilisateur.

C++ (@++)<!--
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
11 févr. 2008 à 17:57
Deux! Et à trois on s'arrete!

Il y a en effet quelques choses que tu as du mal comprendre. En tout cas ta question n'est pas claire.
Sois plus explicite.

Shell
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 févr. 2008 à 18:09
Ah et:
"Peutetre y a ti-il quelque chose que j'ai mal compris ... mais théoriquement ca fait la meme chose non?"
Non ça ne fait pas la même chose du tout.

Petite précision:
Quand je dis, "passer le type", c'est comme ceci:

#define TYPE_CHAR 1
...
int fonc (void *v, int type)
{
    switch(type) {
       case TYPE_CHAR:
          break;
    ...
}

C++ (@++)<!--
0
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 1
12 févr. 2008 à 09:47
Mh ok , en fait je me demandais juste si pour appeler une fonction qui peut avoir a traiter plusieurs type de variables(par exemple une fonction d'addition�11; qui pourrait prendre un float ou un int) il vallait mieu switch le type de variable ou faire un overload sur chaque type , je pense que je vais faire plusieurs overloads.
Merci a vous.
0
CCJ Messages postés 565 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 30 avril 2008 1
12 févr. 2008 à 15:39
En voila une reponse qu'elle me plait !
Merci beaucoup je vais chercher de la doc a ce propos .

Si l'informatique été de l'alcool il y aurait des genies partout
0
Rejoignez-nous