Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan templat fungsi C++ untuk menjanakan penunjuk fungsi?

Bagaimana untuk menggunakan templat fungsi C++ untuk menjanakan penunjuk fungsi?

PHPz
PHPzasal
2024-04-15 14:12:01892semak imbas

Templat fungsi C++ membenarkan generalisasi penunjuk fungsi dan menyokong penunjuk fungsi pelbagai jenis parameter. Langkah-langkah khusus adalah seperti berikut: mengisytiharkan templat fungsi dengan penuding fungsi, dengan T ialah parameter jenis templat. Lulus penuding fungsi untuk digeneralisasikan sebagai parameter kepada fungsi templat. Fungsi templat mengembalikan penunjuk fungsi generik.

如何使用 C++ 函数模板实现函数指针的泛型化?

Gunakan templat fungsi C++ untuk menyamaratakan penuding fungsi

Pengenalan

Penunjuk fungsi C++ menyediakan cara untuk menghantar fungsi sebagai parameter atau mengembalikan nilai. Walau bagaimanapun, jika anda ingin mencipta penunjuk fungsi yang menyokong parameter pelbagai jenis, anda perlu menggunakan templat fungsi. Templat fungsi boleh menjana versi fungsi yang berbeza dengan parameter jenis tertentu.

Sintaks Templat Fungsi

Berikut ialah cara mengisytiharkan templat fungsi dengan penuding fungsi:

template <typename T>
auto make_function_pointer(T function) {
  return function;
}

di mana:

  • T ialah parameter templat jenis yang akan digunakan. Ia boleh daripada sebarang jenis, termasuk jenis penunjuk fungsi. T 是要使用的类型的模板参数。它可以是任何类型,包括函数指针类型。
  • function
  • fungsi ialah penunjuk fungsi untuk menjadi generik.

Kes Praktikal

Mari buat penunjuk fungsi generik yang boleh menerima sebarang jenis fungsi dan mengembalikannya sebagai integer.

#include <iostream>

template <typename T>
int generic_function_pointer(T function) {
  return function();
}

int main() {
  // 定义一个函数,返回一个整数
  int my_function() {
    return 10;
  }

  // 创建一个泛型函数指针
  auto function_ptr = generic_function_pointer(my_function);

  // 调用函数指针
  int result = function_ptr();

  std::cout << "Result: " << result << std::endl;

  return 0;
}
output

🎜
Result: 10

Atas ialah kandungan terperinci Bagaimana untuk menggunakan templat fungsi C++ untuk menjanakan penunjuk fungsi?. 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