Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah penunjuk fungsi berfungsi dalam C++?

Bagaimanakah penunjuk fungsi berfungsi dalam C++?

PHPz
PHPzasal
2024-06-04 17:37:10793semak imbas

Dalam C++, penunjuk fungsi ialah pembolehubah yang menunjuk ke fungsi, yang boleh menghantar atau menyimpan fungsi secara dinamik sebagai parameter. Sintaksnya ialah: taip nama * nama fungsi. Apabila memperuntukkan, gunakan alamat penuding fungsi dan nyahrujuknya semasa membuat panggilan. Sebagai contoh, apabila mengira nilai maksimum menggunakan penunjuk fungsi, pengiraan dilakukan dengan memperuntukkan penunjuk fungsi dan memanggilnya.

函数指针在 C++ 中如何工作?

Cara penunjuk fungsi berfungsi dalam C++

Dalam C++, penunjuk fungsi ialah pembolehubah yang menunjuk ke fungsi. Ia membolehkan kami melepasi fungsi secara dinamik sebagai parameter atau menyimpannya dalam struktur data.

Syntax

Penunjuk fungsi diisytiharkan seperti fungsi biasa, tetapi nama jenis diikuti dengan asterisk (*):

typedef void (*FunctionPointer)(int);

Tugasan

Kita boleh menetapkan alamat fungsi kepada penuding fungsi sama seperti penuding biasa:

FunctionPointer fp = &myFunction;

Panggil

Kita boleh memanggilnya dengan membatalkan penunjuk fungsi:

fp(10);

Contoh praktikal

Mari kita pertimbangkan program yang menggunakan penunjuk fungsi untuk mengira maksimum dua nombor:

#include <iostream>

using namespace std;

// 最大值函数
int max(int a, int b) {
  return a > b ? a : b;
}

// 函数指针比较函数
int compare(int a, int b, int (*fp)(int, int)) {
  return fp(a, b);
}

int main() {
  // 分配函数指针并调用它来计算两数的最大值
  int (*fp)(int, int) = &max;
  int result = compare(5, 10, fp);

  // 打印结果
  cout << "最大值:" << result << endl;

  return 0;
}

Atas ialah kandungan terperinci Bagaimanakah penunjuk fungsi berfungsi dalam C++?. 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