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

PHPz
Lepaskan: 2024-04-15 14:12:01
asal
847 orang telah melayarinya

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

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

🎜
Result: 10
Salin selepas log masuk

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!

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!