Les pointeurs de fonctions C++ pointent vers des fonctions, permettant d'appeler des fonctions via des pointeurs. Un objet fonction est une classe ou une structure qui surcharge l’opérateur Operator() et peut être appelée comme une fonction. Ils sont utiles lorsque vous travaillez avec des fonctions de rappel, qui sont des fonctions transmises à une autre fonction en tant qu'arguments.
Introduction
En C++, les pointeurs de fonction et les objets de fonction sont des outils puissants pour représenter et manipuler des fonctions dans votre code. Comprendre ces concepts est crucial car cela peut améliorer considérablement la flexibilité et la maintenabilité de votre code.
Pointeur de fonction
Un pointeur de fonction est un pointeur vers une fonction. Il stocke l'adresse de la fonction et vous permet d'appeler la fonction via un pointeur. La syntaxe est la suivante :
return_type (*function_pointer)(parameter1, parameter2, ...);
Exemple :
La fonction suivante calcule la somme de deux nombres :
int add(int a, int b) { return a + b; }
On peut pointer vers cette fonction à l'aide du pointeur de fonction suivant :
int (*add_ptr)(int, int) = add;
Maintenant, on peut appeler ajouter via le pointeur de fonction
Fonction : add
函数:
int result = add_ptr(10, 20); // 等价于 add(10, 20)
函数对象
函数对象是一种类或结构,重载了 operator()
struct FunctionObject { return_type operator()(parameter1, parameter2, ...); };
Objet fonction
Un objet fonction est une classe ou une structure qui surcharge l'opérateuroperator()
afin qu'il puisse être appelé comme une fonction. La syntaxe est la suivante : struct AddFunctionObject { int operator()(int a, int b) { return a + b; } };
Exemple :
On crée un objet fonction pour calculer la somme de deux nombres :
AddFunctionObject add_object; int result = add_object(10, 20); // 等价于 add(10, 20)
void process_numbers(int* numbers, int size, int (*operation)(int)) { for (int i = 0; i < size; i++) { numbers[i] = operation(numbers[i]); } }
Pratique exemple : Fonctions de rappel
Les pointeurs de fonction et les objets de fonction sont très utiles lors de l'utilisation de fonctions de rappel. Une fonction de rappel est une fonction transmise à une autre fonction en tant que paramètre.Exemple :
Supposons que nous ayons une fonction qui transmet un ensemble de nombres à une autre fonction. Ce dernier effectue des opérations sur chaque numéro. Nous pouvons transmettre la deuxième fonction en tant que fonction de rappel en utilisant un pointeur de fonction ou un objet de fonction.Utilisez le pointeur de fonction :
🎜void process_numbers(int* numbers, int size, FunctionObject& operation) { for (int i = 0; i < size; i++) { numbers[i] = operation(numbers[i]); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!