Un pointeur de fonction est, par essence , juste un pointeur vers une fonction . Dans les langages tels que C + + , il existe chaque fonction et variable dans un programme d'ordinateur en tant qu'adresse de mémoire , et une variable peuvent contenir la valeur de cette adresse. Cette variable peut être transmis à un rappel, qui peuvent ensuite appeler la fonction que les points variables à . Il peut également être utilisé dans un gestionnaire d'événements, ou pour la liaison tardive d'une fonction de membre. En raison de leur syntaxe compliquée, pointeurs de fonction sont souvent évités par les programmeurs , mais peuvent être utilisés pour réaliser facilement de nombreuses tâches puissants. Choses que vous devez
compilateur C + +
Show More Instructions
1
Ecrire un programme C + + . C'est le programme dans lequel vous allez utiliser un pointeur de fonction .
2
Définir un pointeur de fonction . Vous pouvez le faire de plusieurs façons . Déclarer une fonction , par exemple:
doSomething void ( int data);
et déclarer plus tard, un pointeur vers elle . Ou, vous pouvez déclarer une fonction comme un pointeur :
void (* doSomething ) (int) ;
Enfin , vous pouvez déclarer un typedef , puis créer une variable de ce type < br . >
typedef void (* voidTakingInt ) (int) ;
Vous pouvez maintenant utiliser " voidTakingInt " comme un type :
doSomething void ( int data); voidTakingInt fun_ptr = & doSomething ;
3
déclarer quelque chose qui utilise le pointeur de fonction . Ce sera souvent quelque chose qui utilise le pointeur de fonction comme une fonction de rappel , de sorte que lorsqu'un événement particulier survient, la fonction exécute votre fonction . Un exemple est une fonction de chargement de fichier qui prend une fonction de rappel pour indiquer la progression .
4
appeler la fonction du pointeur vers elle . Cela se ferait au sein de la fonction que vous avez écrit qui accepte un pointeur de fonction en tant que paramètre :
doSomething void ( int data) { }
callAnotherFunction void ( void (* otherFunction ) (int) ) {
(* otherFunction ) (3) ;
}
int main (int argc, char * argv [ ] ) {
callAnotherFunction ( & doSomething ) ; return 0; }