Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan kelas generik dalam C++?
Melaksanakan kelas generik dalam C++: menggunakan templat, ruang letak untuk jenis tertentu. Buat contoh kelas generik, menentukan parameter jenis. Kelas generik membenarkan kod yang sama digunakan untuk jenis data yang berbeza. Aplikasi praktikal: Gunakan kelas StudentArray generik untuk menyimpan dan memproses pelbagai jenis data, seperti nama pelajar.
Kelas generik membolehkan anda mencipta kod yang boleh menggunakan jenis data yang berbeza berdasarkan parameter jenis tanpa pengubahsuaian. Begini caranya untuk melaksanakan kelas generik dalam C++:
#include <iostream> template <typename T> class GenericClass { public: GenericClass(T value) : val(value) {} void print() { std::cout << "Value: " << val << std::endl; } private: T val; };
Dalam contoh ini, GenericClass
是一个泛型类,T
ialah pemegang tempat untuk jenis tersebut. Anda boleh membuat contoh kelas generik dengan menentukan parameter jenis. Contohnya:
GenericClass<int> intClass(10); GenericClass<std::string> strClass("Hello"); intClass.print(); // 输出:“Value:10” strClass.print(); // 输出:“Value:Hello”
Kes praktikal:
Pertimbangkan tatasusunan yang mengandungi nama pelajar. Kita boleh menggunakan kelas generik untuk menyimpan dan memproses jenis data yang berbeza, contohnya:
template <typename T> class StudentArray { public: StudentArray(size_t size) : arr(new T[size]) {} void add(T name, int index) { arr[index] = name; } void print() { for (size_t i = 0; i < size(); ++i) { std::cout << "Student " << (i + 1) << ": " << arr[i] << std::endl; } } size_t size() { return size_; } private: T* arr; size_t size_; }; int main() { StudentArray<std::string> names(5); names.add("John", 0); names.add("Jane", 1); names.add("Peter", 2); names.add("Susan", 3); names.add("Thomas", 4); names.print(); }
Kod ini mencipta tatasusunan generik yang mengandungi 5 rentetan. Ia mempunyai keupayaan untuk menambah dan mencetak nama pelajar.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelas generik dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!