Gunakan helah parameter jenis untuk mencipta templat fungsi C++ generik yang berfungsi untuk sebarang jenis, termasuk: Mengisytiharkan parameter jenis: Gunakan kurungan sudut <> dan nama taip untuk mengisytiharkan parameter jenis. Gunakan parameter jenis: Gunakan parameter jenis sebagai pengisytiharan jenis dalam badan fungsi. Kes praktikal: Gunakan parameter jenis untuk mencipta fungsi tolak kelas Stack umum. Petua lain: menentukan parameter jenis lalai, parameter berbilang jenis dan kekangan yang dikenakan.
Petua untuk menggunakan parameter jenis dalam templat fungsi C++
Templat fungsi membolehkan anda mencipta fungsi yang boleh menyasarkan jenis data yang berbeza. Menggunakan parameter jenis, anda boleh menyamaratakan lagi templat supaya ia boleh digunakan dengan sebarang jenis.
Pengisytiharan parameter jenis
Untuk mengisytiharkan parameter jenis, gunakan kurungan sudut <> Contohnya:
template <typename T> void print(const T& value) { std::cout << value << std::endl; }
Di sini, T
ialah parameter jenis, yang boleh digunakan sebagai mana-mana jenis dalam fungsi. T
是一个类型参数,它可以用作函数中的任何类型。
使用类型参数
一旦声明了类型参数,您就可以在函数体内使用它。您可以将其用作参数类型、返回值类型或其他类型的声明中。例如:
template <typename T> T add(const T& a, const T& b) { return a + b; }
此函数可用于针对任何支持加法运算的类型进行加法运算。
实战案例
假设您有一个 Stack
类,它可以将任何类型的元素存储在堆栈中。您可以使用类型参数创建通用 push
函数:
template <typename T> void Stack<T>::push(const T& element) { data_.push_back(element); }
此 push
函数可以针对任何可以存储在堆栈中的 T
类型正常工作。
其他技巧
typename
关键字指定默认类型参数,如果用户未提供参数,则使用此参数。,
分隔。class
、typename
和 typename…
push
generik menggunakan parameter jenis: 🎜rrreee🎜Fungsi push
ini akan berfungsi dengan betul untuk mana-mana jenis T
yang boleh disimpan pada timbunan itu. 🎜🎜🎜Petua lain🎜🎜typename
untuk menentukan parameter jenis lalai, yang digunakan jika tiada parameter disediakan oleh pengguna . 🎜,
. 🎜class
, typename
dan typename...
. 🎜🎜🎜Dengan menggunakan parameter jenis dengan betul, anda boleh mencipta templat fungsi C++ yang cekap dan serba boleh. 🎜Atas ialah kandungan terperinci Petua untuk menggunakan parameter jenis dalam templat fungsi C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!