Maison >développement back-end >C++ >Comment implémenter des classes génériques en C++ ?

Comment implémenter des classes génériques en C++ ?

王林
王林original
2024-06-06 13:13:57609parcourir

Implémentation de classes génériques en C++ : utilisation de modèles, d'espaces réservés pour les types spécifiés. Créez une instance d'une classe générique, en spécifiant les paramètres de type. Les classes génériques permettent d'utiliser le même code pour différents types de données. Application pratique : utilisez la classe générique StudentArray pour stocker et traiter différents types de données, tels que les noms des étudiants.

Comment implémenter des classes génériques en C++ ?

Comment implémenter des classes génériques en C++

Les classes génériques vous permettent de créer du code pouvant utiliser différents types de données en fonction des paramètres de type sans modification. Voici comment implémenter une classe générique en 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;
};

Dans cet exemple, GenericClass 是一个泛型类,T est un espace réservé pour le type. Vous pouvez créer une instance d'une classe générique en spécifiant des paramètres de type. Par exemple :

GenericClass<int> intClass(10);
GenericClass<std::string> strClass("Hello");

intClass.print();  // 输出:“Value:10”
strClass.print();  // 输出:“Value:Hello”

Cas pratique :

Considérons un tableau contenant les noms des élèves. Nous pouvons utiliser des classes génériques pour stocker et traiter différents types de données, par exemple :

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();
}

Ce code crée un tableau générique contenant 5 chaînes. Il a la capacité d’ajouter et d’imprimer les noms des étudiants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn