SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 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.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 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;
...
}
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 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'addition11; 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.