Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penunjuk Fungsi C++ lwn. Objek Fungsi: Membuka Kunci Potensi Tersembunyi Kod Anda

Penunjuk Fungsi C++ lwn. Objek Fungsi: Membuka Kunci Potensi Tersembunyi Kod Anda

王林
王林asal
2024-04-29 10:33:01741semak imbas

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.

C++ 函数指针与函数对象:解锁代码的隐藏潜力

C++ Penunjuk Fungsi dan Objek Fungsi: Membuka Kunci Potensi Tersembunyi Kod Anda

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 tambah melalui penuding fungsi Fungsi: 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 operator operator() 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)

Sekarang, kita boleh membuat instantiate objek ini dan memanggilnya seperti fungsi:

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]);
  }
}
🎜🎜Gunakan objek fungsi: 🎜🎜
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn