Bagaimanakah penunjuk fungsi berfungsi dalam C++?

PHPz
Lepaskan: 2024-06-04 17:37:10
asal
823 orang telah melayarinya

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

Tugasan

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

FunctionPointer fp = &myFunction;
Salin selepas log masuk

Panggil

Kita boleh memanggilnya dengan membatalkan penunjuk fungsi:

fp(10);
Salin selepas log masuk

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

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