Rumah > Artikel > pembangunan bahagian belakang > Definisi dan penggunaan penunjuk fungsi dalam C++
Penunjuk fungsi dalam C++ ialah pembolehubah yang menunjuk ke fungsi, membenarkan fungsi dihantar sebagai hujah. Menggunakan penunjuk fungsi anda boleh mentakrifkannya, menetapkan nama fungsi atau ungkapan lambda kepada mereka dan memanggilnya seperti fungsi biasa. Penunjuk fungsi digunakan secara meluas dalam pengendali fungsi, seperti operator fungsi isihan, membenarkan fungsi pengisihan dibuat dan digunakan pada masa jalan.
Penunjuk fungsi ialah pembolehubah yang menunjuk kepada fungsi. Ia menyediakan keupayaan untuk menghantar fungsi sebagai hujah dan fleksibiliti memanggil fungsi semasa runtime.
Dalam C++, penuding fungsi boleh ditakrifkan seperti berikut:
returntype (*function_ptr_name)(param_type1, param_type2, ...);
Sebagai contoh, tentukan penunjuk kepada fungsi yang menerima dua parameter integer dan mengembalikan integer:
int (*add_pointer)(int, int);
add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数Sebagai alternatif, anda boleh menggunakan ungkapan lambda untuk mencipta penunjuk fungsi:
add_pointer = [](int a, int b) -> int { return a + b; };Memanggil penunjuk fungsi Anda boleh memanggil fungsi penunjuk sama seperti fungsi biasa:
int result = add_pointer(10, 20);Kes praktikal: fungsi pengisihan Aplikasi biasa penunjuk fungsi ialah fungsi, yang membolehkan fungsi pengisihan dicipta dan digunakan pada masa jalan. Sebagai contoh, kod berikut menggunakan penunjuk fungsi untuk melaksanakan
dengan fungsi perbandingan: std::sort
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> numbers = {3, 1, 5, 2, 4}; // 定义比较函数指针 int (*compare_func)(int, int) = [](int a, int b) -> bool { return a < b; }; // 使用函数指针排序 std::sort(numbers.begin(), numbers.end(), compare_func); // 输出排序后的结果 for (const auto& number : numbers) { std::cout << number << ' '; } return 0; }
Atas ialah kandungan terperinci Definisi dan penggunaan penunjuk fungsi dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!