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

Definisi dan penggunaan penunjuk fungsi dalam C++

PHPz
PHPzasal
2024-04-13 14:15:01642semak imbas

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, ...);

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

int (*add_pointer)(int, int);

Memulakan penunjuk fungsi

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

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

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

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

Memanggil penunjuk fungsi

Anda boleh memanggil fungsi penunjuk sama seperti fungsi biasa:

int result = add_pointer(10, 20);

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;
}

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