Penunjuk fungsi C++ menghala ke fungsi, membenarkan fungsi dipanggil melalui penuding. Objek fungsi ialah kelas atau struktur yang membebankan operator operator() dan boleh dipanggil seperti fungsi. Ia berguna apabila bekerja dengan fungsi panggil balik, iaitu fungsi yang dihantar ke fungsi lain sebagai argumen.
Pengenalan
Dalam C++, penunjuk fungsi dan objek fungsi ialah alat yang berkuasa untuk mewakili dan memanipulasi fungsi anda. Memahami konsep ini adalah penting kerana ia boleh meningkatkan fleksibiliti dan kebolehselenggaraan kod anda dengan ketara.
Penunjuk fungsi
Penunjuk fungsi ialah penuding kepada fungsi. Ia menyimpan alamat fungsi dan membolehkan anda memanggil fungsi melalui penunjuk. Sintaksnya adalah seperti berikut:
return_type (*function_pointer)(parameter1, parameter2, ...);
Contoh:
Fungsi berikut mengira hasil tambah dua nombor:
int add(int a, int b) { return a + b; }
Kita boleh menunjuk ke fungsi ini menggunakan penunjuk fungsi berikut:
int (*add_ptr)(int, int) = add;
Sekarang, kita boleh memanggil add
函数:
int result = add_ptr(10, 20); // 等价于 add(10, 20)
函数对象
函数对象是一种类或结构,重载了 operator()
struct FunctionObject { return_type operator()(parameter1, parameter2, ...); };
Function object
Objek fungsi ialah kelas atau struktur yang melebihkan operatoroperator()
supaya ia boleh dipanggil seperti sesuatu fungsi. Sintaksnya adalah seperti berikut: struct AddFunctionObject { int operator()(int a, int b) { return a + b; } };
Contoh:
Kami mencipta objek fungsi untuk mengira hasil tambah dua nombor:
AddFunctionObject add_object; int result = add_object(10, 20); // 等价于 add(10, 20)
rreee
contoh: Fungsi Panggilan Balik
Penunjuk fungsi dan objek fungsi sangat berguna apabila menggunakan fungsi panggil balik. Fungsi panggil balik ialah fungsi yang dihantar ke fungsi lain sebagai parameter.Contoh:
Andaikan kita mempunyai fungsi yang menghantar set nombor ke fungsi lain. Yang terakhir melakukan operasi pada setiap nombor. Kita boleh lulus fungsi kedua sebagai fungsi panggil balik menggunakan penunjuk fungsi atau objek fungsi.Gunakan penunjuk fungsi:
🎜void process_numbers(int* numbers, int size, int (*operation)(int)) { for (int i = 0; i < size; i++) { numbers[i] = operation(numbers[i]); } }
void process_numbers(int* numbers, int size, FunctionObject& operation) { for (int i = 0; i < size; i++) { numbers[i] = operation(numbers[i]); } }
Atas ialah kandungan terperinci Penunjuk Fungsi C++ lwn. Objek Fungsi: Membuka Kunci Potensi Tersembunyi Kod Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!