13.5.3 Passage en paramètre de l'adresse d'une fonction

L'utilisation de pointeur de fonction permet de passer une fonction en paramètre d'une autre fonction. Par exemple, créons un type « fonction qui reçoit un double et renvoie un double » appelé T_FONC :
et supposons définies deux fonctions fct1 et fct2 dont les prototypes sont :
On peut transmettre en paramètre l'adresse de fct1 ou fct2, par exemple à une fonction de calcul de dérivée. Cette fonction de calcul de dérivée, qu'on appelle calculer_deriv, peut avoir un prototype du genre :
calculer_deriv reçoit l'adresse de la fonction à dériver ainsi que d'autres paramètres, et renvoie le résultat double de son calcul.
La fonction calculer_deriv sera simplement appelée de la façon suivante :
La fonction dont on transmet l'adresse à calculer_deriv sera appelée à l'intérieur de calculer_deriv par :
(*ptr_fct)(x) En résumé (voir l’exemple qui suit) :
|