Implementierung generischer Klassen in C++: Verwendung von Vorlagen und Platzhaltern für bestimmte Typen. Erstellen Sie eine Instanz einer generischen Klasse und geben Sie dabei Typparameter an. Generische Klassen ermöglichen die Verwendung desselben Codes für verschiedene Datentypen. Praktische Anwendung: Verwenden Sie die generische StudentArray-Klasse, um verschiedene Arten von Daten zu speichern und zu verarbeiten, z. B. Studentennamen.
Mit generischen Klassen können Sie Code erstellen, der verschiedene Datentypen basierend auf Typparametern ohne Änderung verwenden kann. So implementieren Sie eine generische Klasse in 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; };
In diesem Beispiel ist GenericClass
是一个泛型类,T
ein Platzhalter für den Typ. Sie können eine Instanz einer generischen Klasse erstellen, indem Sie Typparameter angeben. Zum Beispiel:
GenericClass<int> intClass(10); GenericClass<std::string> strClass("Hello"); intClass.print(); // 输出:“Value:10” strClass.print(); // 输出:“Value:Hello”
Praktischer Fall:
Betrachten Sie ein Array mit Schülernamen. Wir können generische Klassen verwenden, um verschiedene Datentypen zu speichern und zu verarbeiten, zum Beispiel:
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(); }
Dieser Code erstellt ein generisches Array mit 5 Zeichenfolgen. Es besteht die Möglichkeit, Schülernamen hinzuzufügen und auszudrucken.
Das obige ist der detaillierte Inhalt vonWie implementiert man generische Klassen in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!