Pointeurs de fonctions

De RAD Studio
Aller à : navigation, rechercher

Remonter à Pointeurs - Index

Un pointeur de fonction peut être envisagé comme une adresse, généralement dans un segment de code, où est enregistré le code exécutable de la fonction en question. Il s'agit en fait de l'adresse qui prend le contrôle lorsque la fonction est appelée.

Un pointeur de fonction est du type "pointeur de fonction renvoyant type", où type est le type de la valeur renvoyée par la fonction. Par exemple,



 void (*func)();



En C++, c'est un pointeur de fonction ne prenant aucun argument et renvoyant void. En C, il s'agit d'un pointeur de fonction prenant un nombre indéfini d'arguments et renvoyant void. Dans cet exemple,



 void (*func)(int);



  • func est le pointeur d'une fonction prenant un argument int et renvoyant void.

En C++, un tel pointeur peut être utilisé pour accéder à des fonctions membre statiques. Les pointeurs sur les membres d'une classe doivent utiliser les opérateurs pointant sur des membres. Pour plus d'informations, voir static_cast.