Un pointeur de fonction est un pointeur vers une fonction, qui offre la possibilité d'appeler dynamiquement des fonctions au moment de l'exécution. Les paramètres de pointeur de fonction sont souvent utilisés pour transmettre des rappels à d’autres fonctions.
Le qualificatif const
peut être appliqué aux paramètres du pointeur de fonction pour spécifier que la fonction pointée par le pointeur de fonction ne peut pas être modifiée. Cela garantit que la fonction pointée par le pointeur de fonction n'est pas accidentellement écrasée ou modifiée pendant l'appel. const
限定符可以应用于函数指针参数,以指定函数指针指向的函数不能被修改。这确保了函数指针指向的函数在调用期间不会被意外覆盖或修改。
void foo(void (*func)(int));
在上面的示例中,foo
函数接受一个函数指针参数 func
,该函数指针指向一个接受单个整型参数的函数。const
限定符指定指向的函数不能被修改。
考虑一个计算两个整数最大公约数的函数:
int gcd(int a, int b) { while (b) { int temp = a % b; a = b; b = temp; } return a; }
我们可以通过将 gcd
函数作为一个函数指针参数传递来创建一个函数,该函数返回两个数字的最小公倍数:
int lcm(int a, int b) { return a * b / gcd(a, b); }
在 main
函数中,我们可以使用 std::function
包装器类来创建指向 gcd
函数的 const
函数指针:
int main() { std::function<int(int, int)> gcd_ptr = std::function<int(int, int)>(gcd); int result = lcm(12, 18); std::cout << result << std::endl; return 0; }
输出:
36
在此示例中,gcd_ptr
是指向 gcd
函数的 const
函数指针,因为它使用 std::function
foo
accepte un paramètre de pointeur de fonction func
, qui pointe vers une fonction qui accepte un seul entier paramètre La fonction. Le qualificatif const
spécifie que la fonction pointée ne peut pas être modifiée. 🎜gcd
comme argument de pointeur de fonction, Cette fonction renvoie le plus petit commun multiple de deux nombres : 🎜rrreee🎜Dans la fonction main
, nous pouvons utiliser la classe wrapper std::function
pour créer un pointeur vers const
de la fonction >gcd : 🎜rrreee🎜Sortie : 🎜rrreee🎜Dans cet exemple, gcd_ptr
est un pointeur vers le gcd
pointeur de fonction function code>const, car il est créé à l'aide de la classe wrapper std::function
, qui garantit que la fonction pointée ne peut pas être modifiée. 🎜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!