*   >> Lecture Éducation Articles >> science >> la programmation

Pointeur de fonction en C ++

isation d'un pointeur vers une fonction est, de type (* functionPointer) (parameterTypes) = actualFunctionName; Type est ici le type de la fonction pointeur pointera vers de retour. functionPointer est l'identificateur de l'objet qui devra l'adresse du code de début de la fonction. ParameterTypes sont les types de la fonction de paramètres souligné. Les parenthèses et l'astérisque sont obligatoires. Supposons que vous voulez un pointeur vers la fonction myFn () ci-dessus avec le nom, myFnPtr.

Dans ce cas, l'initialisation de pointeur est, flotteur (* myFnPtr) (float, int) = myFn; Maintenant, le nom d'une fonction (par exemple myFn) est en fait un pointeur vers une fonction. Donc, functionPointer et actualFunctionName deviennent synonymes. Dans notre cas, myFnPtr et myFn deviennent synonymes. Appelant la fonction pointé par le Bien functionPointer et actualFunctionName sont synonymes, vous pouvez appeler la fonction réelle en utilisant functionPointer de la même manière que vous le feriez nous actualFunctionName.

Dans notre situation ci-dessus, vous feriez par exemple, myFnPtr (68,78, 50) Exemple Le code suivant montre comment vous pouvez créer un pointeur vers une fonction et l'utiliser pour appeler la fonction: #include using namespace std; flotter myFn (float ident1, int ident2) {float = différence de ident1 - ident2; différence revenir; } Flotteur (* myFnPtr) (float, int) = myFn; int main () {float réponse = myFnPtr (6,5, 2); Cout return 0; } Pointer par Déclaration Dans les exemples ci-dessus le pointeur a été créé comme, flotteur (* myFnPtr) (float, int) = myFn; Cela crée pointeur par initialisation.

Dans la déclaration de l'adresse de la fonction pointue est stocké dans l'objet de pointeur (myFnPtr), lors de la création du pointeur. Vous pouvez créer le pointeur par déclaration et ensuite affecter la valeur d'adresse plus tard comme suit: float (* myFnPtr) (float, int); myFnPtr = myFn; Dans ce cas, les deux déclarations ou la déclaration d'affectation devraient être en fonction (comme la fonction principale). Utilisez de pointeur vers une fonction La principale utilisation d'un pointeur vers une fonction est aussi un paramètre à une autre fonction.

Le code suivant illustre cela: #include using namespace std; flotter myFn (float ident1, int ident2) {float = différence de ident1 - ident2; différence revenir; } Flotter squareDifference (float (* myFnPtr) (float, int)) {float = sqr myFnPtr (6,5, 2) * myFnPtr (6,5, 2); retourner SQR; } Int main () {float

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.