Maison >développement back-end >C++ >Comment implémenter des classes génériques en C++ ?
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.
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!