POINTEURS SUR FONCTIONS

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 21 oct. 2003 à 19:27
 Utilisateur anonyme - 18 juil. 2004 à 10:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/17262-pointeurs-sur-fonctions

Utilisateur anonyme
18 juil. 2004 à 10:24
Ah bah non.
^^ lol ^^
Parce que dans ce cas, il faut changer la fonction à chaque fois, donc le code est pas très générique.

Mais comme je le dis plus haut si t'as pas envie d'apprendre, c'est pas très grave :-)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 juil. 2004 à 20:33
bah pour ça on mat un parametre en plus dans la fonction, et on met un if dans cette fonction, c'est bcp plus simple, pour ceux qui n'ont pas envie d'aprendre...
Utilisateur anonyme
8 juil. 2004 à 17:56
Ouai, tu as certainement raison. Mais je sais pas pkoi, ce truc m'avait parru être utilisé que dans des cas assez rares.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
8 juil. 2004 à 17:33
Je pense qu'un "logiciel commun" se programme comme tout autre logiciel, et le maniment des pointeurs de fonction est indispensable a la pratique du langage C, c'est juste mon petit avis, mais des fois moi ca m'est bien utile. De toute maniere cela va avec l'apprentissage des pointeurs qui eux sont obligatoires ....
Utilisateur anonyme
8 juil. 2004 à 17:28
Ben toute sorte de logiciels de type bureautique, traitements de texte, etc...
Enfin tout les logiciels courants.
C'est surtout (du moins je pense, je me trompe peut être) utilisé dans des logiciels à utilisation professionnelle comme les SGBD (bases de données) etc...
Je pense que ce genre de truc s'écarte un peu de la programmation classique (genre procédurale, très mécanique) et s'oriente plutôt vers la programmation dynamique. Enfin, pour ce qui est des logiciels, il est vrai qu'aujourd'hui avec les nombreuses bibliothèques qu'il existe, ca doit s'intégrer à de nombreux logicielsn même les plus courant, car il y'a souvent besoin de trier des choses ou de répéter une même opération sur des éléments différents.
C'est clair ? Hmmm... En me relisant je me trouve pas clair.

Disons en gros que ne pas savoir ça, ca ne chamboulera le travail de personne.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
7 juil. 2004 à 21:04
Qu'est ce que tu appelles "commun logiciel" ?
Utilisateur anonyme
7 juil. 2004 à 16:14
Arg, bien ce que je me disais, j'ai un peu la tremblotte aujourd'hui alors j'ai cliqué deux fois.
Utilisateur anonyme
7 juil. 2004 à 16:12
Ouai, on les utilise pour pleins de choses: les tris par exemple:
comme ca ca permet de trier des objets dans un ordre ou dans l'ordre complet, ou selon tel paramètre et puis finalement avec un autre paramtère (ordre alphabétique, valeur, etc...) tout en gardant la même fonction. C'est utile lorsque les tris sont super complexe à faire.
Sinon, ben pour le commun du logiciel, ca n'a aucun intérêt particulire (la pluspart du temps) c'est plutôt orienté vers la l'algo de pointe (ce qui touche aux conteneurs (arbres, listes...) au algos de tris, etc...)
Utilisateur anonyme
7 juil. 2004 à 16:12
Ouai, on les utilise pour pleins de choses: les tris par exemple:
comme ca ca permet de trier des objets dans un ordre ou dans l'ordre complet, ou selon tel paramètre et puis finalement avec un autre paramtère (ordre alphabétique, valeur, etc...) tout en gardant la même fonction. C'est utile lorsque les tris sont super complexe à faire.
Sinon, ben pour le commun du logiciel, ca n'a aucun intérêt particulire (la pluspart du temps) c'est plutôt orienté vers la l'algo de pointe (ce qui touche aux conteneurs (arbres, listes...) au algos de tris, etc...)
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
7 juil. 2004 à 12:39
Ben ca peut servir à faire des fonctions "génériques".
Par exemple (ce n'est qu'un exemple) pour les arbres AVL (ou autre) du passe une fonction de comparaison, comme ca ta librairie d'arbre AVL marche pour quoi que ce soit, et n'est pas limiter a une comparison d'entier.

grace aux pointeurs de fonction du peux decider quelle fonction appeller. Par exemple moi je les est utilise partout dans ma source MATLAB COMPLEXE, il y a une fonction de dessin, une de calcul, ect ...

Par exemple quand tu veix faire une fonction qui permet d'avoir des bitmaps transparentes, tu passes une fonction qui dit si oui ou non ce pixel doit etre transparent ou non (cf une de mes sources).

Bon moi comment moi je les utilise, peut-etre (surement) d'autres les utilisent pour autres choses ...
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
7 juil. 2004 à 11:18
a quoi peut servir les pointeurs sur fonction?
Utilisateur anonyme
13 juin 2004 à 10:52
Meric aussi ;-)
J'avais jamais pensé à voir son fonctionnement avec les tableaux.
Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009
12 juin 2004 à 20:33
ok meric bcp!!!
Utilisateur anonyme
12 juin 2004 à 11:38
Petit exemple d'utilisation avec des tableaux.

int F1 (char a)
{
cout << "1" << a << endl;
return 1;
}

int F2 (char a)
{
cout << "2" << a << endl;
return 2;
}

int main()
{
int (*f[2]) (char);
f[0] = F1;
f[1]= F2;
cout << f[0] ('c') << endl;
cout << f[1] ('d') << endl;

return 0;
}


On peut aussi utiliser le type __cdecl qui signifie pointeur sur fonction.
Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009
12 juin 2004 à 00:26
Comment fait on pour faire un tableau de ptr sur fonction'et comment s'en servir?
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
22 oct. 2003 à 13:36
Voila c'est bien. On c'est maintenant tout faire sur les pointeurs sur fonctions, surtout comment les prototypees.
Utilisateur anonyme
21 oct. 2003 à 22:51
OK JCDjcd !
Voila la correction.

Bonne idée de mettre cet exemple, merci à toi !
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
21 oct. 2003 à 19:27
Il est vrai que les pointeurs sur fonction sont tres utiles !
Il serait bien aussi de faire pour l'exemple un fonction 'executer' qui recoit en parametre la fonction a appeller. Car on stock souvent des pointeurs sur fonction dans des structures et ont en passe aussi souvent a des fonctions, pour quelle soit le plus parametrable possible
Rejoignez-nous