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és12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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...
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és1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 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 ....
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és1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 7 juil. 2004 à 21:04
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...)
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és1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 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és2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 7 juil. 2004 à 11:18
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 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
18 juil. 2004 à 10:24
^^ 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 :-)
17 juil. 2004 à 20:33
8 juil. 2004 à 17:56
8 juil. 2004 à 17:33
8 juil. 2004 à 17:28
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.
7 juil. 2004 à 21:04
7 juil. 2004 à 16:14
7 juil. 2004 à 16:12
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...)
7 juil. 2004 à 16:12
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...)
7 juil. 2004 à 12:39
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 ...
7 juil. 2004 à 11:18
13 juin 2004 à 10:52
J'avais jamais pensé à voir son fonctionnement avec les tableaux.
12 juin 2004 à 20:33
12 juin 2004 à 11:38
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.
12 juin 2004 à 00:26
22 oct. 2003 à 13:36
21 oct. 2003 à 22:51
Voila la correction.
Bonne idée de mettre cet exemple, merci à toi !
21 oct. 2003 à 19:27
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