Un pointeur de fonction en C++ fait référence à une variable pointant vers l'adresse mémoire d'une fonction. Il est souvent utilisé dans des scénarios tels que les fonctions de rappel, la liaison dynamique et le traitement d'événements. Par exemple, dans l'algorithme de tri, nous pouvons utiliser des pointeurs de fonction pour implémenter différentes fonctions de comparaison afin de choisir de manière flexible l'algorithme de tri.
Scénarios d'application de pointeur de fonction C++
Qu'est-ce qu'un pointeur de fonction ?
En C++, un pointeur de fonction est un pointeur vers une fonction. C'est une variable pointant vers l'adresse mémoire de la fonction.
Déclaration des pointeurs de fonction
La déclaration des pointeurs de fonction est très similaire à la déclaration des fonctions ordinaires, sauf qu'un astérisque (*) est ajouté devant le nom de la fonction :
typedef int (*FuncPtr)(int, int);
La déclaration ci-dessus définit une fonction nommé FuncPtr
Un pointeur de fonction qui pointe vers une fonction qui accepte deux paramètres de type int
et renvoie un type int
. FuncPtr
的函数指针,它指向一个接受两个 int
类型的参数并返回一个 int
类型的函数。
函数指针的用法
函数指针可以用于以下场景:
实战案例:排序算法
我们可以使用函数指针来实现不同的排序算法。下面是一个使用函数指针的比较函数的 sort
函数:
#include <algorithm> bool Ascending(int a, int b) { return a < b; } bool Descending(int a, int b) { return a > b; } void Sort(int* arr, int size, bool (*CompareFunc)(int, int)) { std::sort(arr, arr + size, CompareFunc); } int main() { int arr[] = {5, 3, 1, 2, 4}; int size = sizeof(arr) / sizeof(arr[0]); // 使用升序比较函数进行排序 Sort(arr, size, Ascending); // 使用降序比较函数进行排序 Sort(arr, size, Descending); return 0; }
在上面的代码中,CompareFunc
是一个函数指针,指向一个接受两个 int
类型的参数并返回一个 bool
类型的比较函数。我们定义了两个比较函数 Ascending
和 Descending
,它们将两个数字进行升序和降序比较。
Sort
函数使用传入的比较函数对数组 arr
sort
qui utilise une fonction de comparaison d'un pointeur de fonction : 🎜rrreee🎜Dans le code ci-dessus, CompareFunc
est un pointeur de fonction vers une fonction qui accepte deux paramètres de type int
et renvoie une fonction de comparaison de type bool
. Nous définissons deux fonctions de comparaison Ascending
et Descending
, qui comparent deux nombres par ordre croissant et décroissant. 🎜🎜La fonction Sort
trie le tableau arr
en utilisant la fonction de comparaison passée. En utilisant des pointeurs de fonction, nous pouvons choisir de manière flexible différentes fonctions de comparaison pour implémenter différents algorithmes de tri. 🎜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!