Un pointeur de fonction est un pointeur vers une fonction, utilisé pour implémenter des rappels, des fonctions anonymes et une programmation générique. Syntaxe : returnType (*functionName)(parameterList). Pour utiliser : Déclarez un pointeur vers le type de fonction souhaité et utilisez le pointeur de fonction comme n'importe quel autre pointeur. Cas pratique : Implémenter une fonction de tri et passer une fonction de comparaison pour personnaliser la logique de comparaison.
Guide d'utilisation du pointeur de fonction C++
Introduction
Un pointeur de fonction est un type spécial de pointeur qui pointe vers une fonction. En C++, les pointeurs de fonction sont principalement utilisés pour implémenter des fonctions de rappel, des fonctions anonymes et de la programmation générique.
Syntaxe
La syntaxe d'un pointeur de fonction est la suivante :
returnType (*functionName)(parameterList);
Où :
returnType
est le type de retour de la fonction pointée par le pointeur. returnType
是指针指向的函数的返回类型。functionName
是函数指针的名称。parameterList
是指针指向的函数的参数列表。使用
要使用函数指针,需要先声明一个指向所需函数类型的函数指针。例如:
int add(int a, int b) { return a + b; } int (*sumFunction)(int, int); // 声明一个指向 add 函数的函数指针
然后,可以用像其他指针一样使用函数指针。例如:
// 将 sumFunction 指向 add 函数 sumFunction = &add; // 调用 sumFunction int result = sumFunction(10, 20); // result 将等于 30
实战案例
场景:实现一个排序函数,允许传递一个比较函数以自定义比较逻辑
#include <algorithm> #include <vector> // 比较函数 bool compare(int a, int b) { return a > b; } // 排序函数,接受一个比较函数 void sortDescending(std::vector<int>& numbers, bool (*compareFunction)(int, int)) { std::sort(numbers.begin(), numbers.end(), compareFunction); } int main() { std::vector<int> numbers = {1, 5, 3, 2, 4}; // 使用比较函数排序数组 sortDescending(numbers, compare); // 输出排序后的数组 for (int number : numbers) { std::cout << number << " "; } return 0; }
在这个实战案例中,compare
函数指针被传递给 sortDescending
函数。sortDescending
函数使用比较函数对向量进行排序。因此,输出将是降序排序后的向量元素:5 4 3 2 1
functionName
est le nom du pointeur de fonction.
parameterList
est la liste des paramètres de la fonction pointée par le pointeur. 🎜🎜Utiliser 🎜🎜🎜Pour utiliser un pointeur de fonction, vous devez d'abord déclarer un pointeur de fonction pointant vers le type de fonction souhaité. Par exemple : 🎜rrreee🎜 Les pointeurs de fonction peuvent alors être utilisés comme n’importe quel autre pointeur. Par exemple : 🎜rrreee🎜🎜Cas pratique🎜🎜🎜🎜Scénario : Implémenter une fonction de tri qui permet de passer une fonction de comparaison pour personnaliser la logique de comparaison🎜🎜rrreee🎜Dans ce cas pratique, le pointeur de la fonction compare
est transmis à la fonction sortDescending
. La fonction sortDescending
trie les vecteurs à l'aide de fonctions de comparaison. Par conséquent, le résultat sera les éléments vectoriels triés par ordre décroissant : 5 4 3 2 1
. 🎜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!