在 C++ 中實作泛型類別:使用模板,指定類型的佔位符。建立泛型類別的實例,指定類型參數。泛型類別可以根據不同的資料類型使用相同代碼。實戰應用:使用泛型 StudentArray 類別儲存和處理不同類型的數據,例如學生姓名。
泛型類別可讓您建立程式碼,該程式碼可以根據類型參數而無需修改地使用不同的資料類型。下面是如何在 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; };
在這個範例中,GenericClass
是一個泛型類,T
是類型的佔位符。您可以透過指定類型參數來建立泛型類別的實例。例如:
GenericClass<int> intClass(10); GenericClass<std::string> strClass("Hello"); intClass.print(); // 输出:“Value:10” strClass.print(); // 输出:“Value:Hello”
實戰案例:
考慮一個包含學生姓名的陣列的情況。我們可以使用泛型類別來儲存和處理不同類型的數據,例如:
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(); }
此程式碼建立了一個包含 5 個字串的泛型數組。它能夠添加和列印學生姓名。
以上是如何實作C++中的泛型類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!