Heim >Backend-Entwicklung >C++ >Wie implementiert man generische Klassen in C++?

Wie implementiert man generische Klassen in C++?

王林
王林Original
2024-06-06 13:13:57610Durchsuche

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.

Wie implementiert man generische Klassen in C++?

So implementieren Sie generische Klassen in C++

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn