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

Comment la programmation générique en C++ permet-elle la réutilisation du code via des modèles de classe ?

WBOY
Libérer: 2024-06-01 22:12:00
original
767 Les gens l'ont consulté

La programmation générique permet du code qui utilise différents types de données en créant des modèles de classe, où T est le paramètre de type. La syntaxe de création d'un modèle de classe est la suivante : template class MyClass {/class definition/}. Pour utiliser un modèle de classe, instanciez-le avec un type concret : MyClass En pratique, vous pouvez utiliser le modèle de classe ArrayMultiplier pour multiplier les éléments du tableau par une valeur spécifique sans spécifier le type de l'élément du tableau : ArrayMultiplier myMultiplier.multiply(arr, arrSize, multiplicateur).

C++ 中的泛型编程如何通过类模板实现代码复用?

Programmation générique en C++ à l'aide de modèles de classe

La programmation générique est une technique qui permet d'écrire du code qui fonctionne avec différents types de données. Ceci peut être réalisé en créant un modèle de classe qui définit une classe avec des paramètres de type.

Créer un modèle de classe

Pour créer un modèle de classe, vous devez utiliser la syntaxe suivante :

template <typename T>
class MyClass {
    // 类定义
};
Copier après la connexion

Ici, T est le paramètre de type et il sera remplacé par le type concret. T 是类型参数,它将用具体类型替换。

使用类模板

要使用类模板,请在使用具体类型的情况下实例化它。例如:

MyClass<int> myIntClass;
Copier après la connexion

这将创建一个 MyClass 实例,其中 Tint 替换。

实战案例

让我们考虑一个将数组中元素乘以某个值的函数:

void multiplyArray(int* arr, int size, int factor) {
    for (int i = 0; i < size; i++) {
        arr[i] *= factor;
    }
}
Copier après la connexion

此函数只能用于整数数组。要使其对任何类型数据通用,我们可以使用类模板:

template <typename T>
class ArrayMultiplier {
public:
    void multiply(T* arr, int size, T factor) {
        for (int i = 0; i < size; i++) {
            arr[i] *= factor;
        }
    }
};
Copier après la connexion

要使用该类,我们实例化 ArrayMultiplier 并调用 multiply

Utilisation de modèles de classe

🎜🎜Pour utiliser un modèle de classe, instanciez-le à l'aide d'un type concret. Par exemple : 🎜
ArrayMultiplier<int> intMultiplier;
int arr[] = {1, 2, 3};
intMultiplier.multiply(arr, 3, 10);
Copier après la connexion
🎜Cela créera une instance de MyClassT est remplacé par int. 🎜🎜🎜Cas pratique🎜🎜🎜Considérons une fonction qui multiplie les éléments d'un tableau par une certaine valeur : 🎜rrreee🎜Cette fonction ne peut être utilisée que pour les tableaux d'entiers. Pour le rendre universel pour tout type de données, nous pouvons utiliser un modèle de classe : 🎜rrreee🎜 Pour utiliser cette classe, nous instancions ArrayMultiplier et appelons la méthode multiply : 🎜rrreee🎜Maintenant , ce code peut être utilisé pour tout type de tableau sans aucune modification. 🎜

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