Maison > développement back-end > C++ > le corps du texte

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

王林
Libérer: 2024-06-06 13:13:57
original
522 Les gens l'ont consulté

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;
};
Copier après la connexion

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”
Copier après la connexion

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();
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!