Pengaturcaraan generik membenarkan kod yang menggunakan pelbagai jenis data dengan mencipta templat kelas, dengan T ialah parameter jenis. Sintaks untuk membuat templat kelas ialah: templat
Pengaturcaraan Generik dalam C++ menggunakan Templat Kelas
Pengaturcaraan generik ialah teknik yang membolehkan anda menulis kod yang berfungsi dengan pelbagai jenis data. Ini boleh dicapai dengan mencipta templat kelas yang mentakrifkan kelas dengan parameter jenis.
Cipta templat kelas
Untuk mencipta templat kelas anda perlu menggunakan sintaks berikut:
template <typename T> class MyClass { // 类定义 };
Di sini, T
ialah parameter jenis dan ia akan digantikan dengan jenis konkrit. T
是类型参数,它将用具体类型替换。
使用类模板
要使用类模板,请在使用具体类型的情况下实例化它。例如:
MyClass<int> myIntClass;
这将创建一个 MyClass
实例,其中 T
被 int
替换。
实战案例
让我们考虑一个将数组中元素乘以某个值的函数:
void multiplyArray(int* arr, int size, int factor) { for (int i = 0; i < size; i++) { arr[i] *= factor; } }
此函数只能用于整数数组。要使其对任何类型数据通用,我们可以使用类模板:
template <typename T> class ArrayMultiplier { public: void multiply(T* arr, int size, T factor) { for (int i = 0; i < size; i++) { arr[i] *= factor; } } };
要使用该类,我们实例化 ArrayMultiplier
并调用 multiply
Menggunakan Templat Kelas
🎜🎜Untuk menggunakan templat kelas, nyatakannya menggunakan jenis konkrit. Contohnya: 🎜ArrayMultiplier<int> intMultiplier; int arr[] = {1, 2, 3}; intMultiplier.multiply(arr, 3, 10);
MyClass
dengan T
digantikan dengan int
. 🎜🎜🎜Kes Praktikal🎜🎜🎜Mari kita pertimbangkan fungsi yang mendarab elemen dalam tatasusunan dengan nilai tertentu: 🎜rrreee🎜Fungsi ini hanya boleh digunakan untuk tatasusunan integer. Untuk menjadikannya universal untuk sebarang jenis data, kami boleh menggunakan templat kelas: 🎜rrreee🎜 Untuk menggunakan kelas ini, kami membuat instantiate ArrayMultiplier
dan memanggil kaedah multiply
: 🎜rrreee🎜Sekarang , kod ini boleh digunakan untuk sebarang jenis tatasusunan tanpa sebarang pengubahsuaian. 🎜Atas ialah kandungan terperinci Bagaimanakah pengaturcaraan generik dalam C++ mencapai penggunaan semula kod melalui templat kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!