Rumah > pembangunan bahagian belakang > C++ > Definisi dan penggunaan penunjuk fungsi dalam C++

Definisi dan penggunaan penunjuk fungsi dalam C++

PHPz
Lepaskan: 2024-04-13 14:15:01
asal
647 orang telah melayarinya

Penunjuk fungsi dalam C++ ialah pembolehubah yang menunjuk ke fungsi, membenarkan fungsi dihantar sebagai hujah. Menggunakan penunjuk fungsi anda boleh mentakrifkannya, menetapkan nama fungsi atau ungkapan lambda kepada mereka dan memanggilnya seperti fungsi biasa. Penunjuk fungsi digunakan secara meluas dalam pengendali fungsi, seperti operator fungsi isihan, membenarkan fungsi pengisihan dibuat dan digunakan pada masa jalan.

C++ 中函数指针的定义和用法

Takrifan dan penggunaan penunjuk fungsi dalam C++

Penunjuk fungsi ialah pembolehubah yang menunjuk kepada fungsi. Ia menyediakan keupayaan untuk menghantar fungsi sebagai hujah dan fleksibiliti memanggil fungsi semasa runtime.

Tentukan penunjuk fungsi

Dalam C++, penuding fungsi boleh ditakrifkan seperti berikut:

returntype (*function_ptr_name)(param_type1, param_type2, ...);
Salin selepas log masuk

Sebagai contoh, tentukan penunjuk kepada fungsi yang menerima dua parameter integer dan mengembalikan integer:

int (*add_pointer)(int, int);
Salin selepas log masuk

Memulakan penunjuk fungsi

boleh dilakukan dengan menghantar fungsi Berikan nama kepada penunjuk fungsi untuk memulakannya:

add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan ungkapan lambda untuk mencipta penunjuk fungsi:

add_pointer = [](int a, int b) -> int { return a + b; };
Salin selepas log masuk

Memanggil penunjuk fungsi

Anda boleh memanggil fungsi penunjuk sama seperti fungsi biasa:

int result = add_pointer(10, 20);
Salin selepas log masuk

Kes praktikal: fungsi pengisihan

Aplikasi biasa penunjuk fungsi ialah fungsi, yang membolehkan fungsi pengisihan dicipta dan digunakan pada masa jalan. Sebagai contoh, kod berikut menggunakan penunjuk fungsi untuk melaksanakan

dengan fungsi perbandingan: std::sort

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
  std::vector<int> numbers = {3, 1, 5, 2, 4};

  // 定义比较函数指针
  int (*compare_func)(int, int) = [](int a, int b) -> bool {
    return a < b;
  };

  // 使用函数指针排序
  std::sort(numbers.begin(), numbers.end(), compare_func);

  // 输出排序后的结果
  for (const auto& number : numbers) {
    std::cout << number << ' ';
  }

  return 0;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Definisi dan penggunaan penunjuk fungsi 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