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

王林
Lepaskan: 2024-04-29 10:33:01
asal
729 orang telah melayarinya

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, ...);
Salin selepas log masuk

Contoh:

Fungsi berikut mengira hasil tambah dua nombor:

int add(int a, int b) {
  return a + b;
}
Salin selepas log masuk

Kita boleh menunjuk ke fungsi ini menggunakan penunjuk fungsi berikut:

int (*add_ptr)(int, int) = add;
Salin selepas log masuk

Sekarang, kita boleh memanggil tambah melalui penuding fungsi Fungsi: add 函数:

int result = add_ptr(10, 20); // 等价于 add(10, 20)
Salin selepas log masuk

函数对象

函数对象是一种类或结构,重载了 operator()

struct FunctionObject {
  return_type operator()(parameter1, parameter2, ...);
};
Salin selepas log masuk

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;
  }
};
Salin selepas log masuk

Contoh:

Kami mencipta objek fungsi untuk mengira hasil tambah dua nombor:

AddFunctionObject add_object;
int result = add_object(10, 20); // 等价于 add(10, 20)
Salin selepas log masuk

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]);
  }
}
Salin selepas log masuk
🎜🎜Gunakan objek fungsi: 🎜🎜
void process_numbers(int* numbers, int size, FunctionObject& operation) {
  for (int i = 0; i < size; i++) {
    numbers[i] = operation(numbers[i]);
  }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!