Rumah >pembangunan bahagian belakang >C++ >const qualifier untuk parameter penunjuk fungsi C++
Penuding fungsi ialah penuding kepada fungsi, yang menyediakan keupayaan untuk memanggil fungsi secara dinamik pada masa jalan. Parameter penunjuk fungsi sering digunakan untuk menghantar panggilan balik ke fungsi lain.
Kelayakan const
boleh digunakan pada parameter penuding fungsi untuk menentukan bahawa fungsi yang ditunjuk oleh penuding fungsi tidak boleh diubah suai. Ini memastikan bahawa fungsi yang ditunjuk oleh penuding fungsi tidak ditimpa atau diubah suai secara tidak sengaja semasa panggilan. 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
menerima parameter penuding fungsi func
, yang menunjuk kepada fungsi yang menerima integer tunggal parameter Fungsi. Kelayakan const
menentukan bahawa fungsi yang ditunjuk tidak boleh diubah suai. 🎜gcd
sebagai hujah penunjuk fungsi, Fungsi ini mengembalikan gandaan sepunya terendah bagi dua nombor: 🎜rrreee🎜Dalam fungsi main
, kita boleh menggunakan kelas pembalut std::function
untuk mencipta penunjuk kepada gcd fungsi <code>const
penunjuk fungsi: 🎜rrreee🎜Output: 🎜rrreee🎜Dalam contoh ini, gcd_ptr
ialah penunjuk kepada gcd
fungsi kod>const penunjuk fungsi, kerana ia dicipta menggunakan kelas pembalut std::function
, yang memastikan bahawa fungsi runcing tidak boleh diubah suai. 🎜Atas ialah kandungan terperinci const qualifier untuk parameter penunjuk fungsi C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!