Classes wrapper en C++
Cet article vous expliquera les classes wrapper en C++ et où elles sont utilisées.
Définition des classes wrapper en C++
Une classe wrapper est un type spécial de classe qui encapsule une ressource gérée. Voyons un exemple pour mieux comprendre.
Exemple de code :
class int_wrapper {
public:
int_wrapper(int value = 0) : myPtr(new int(value)) {}
~int_wrapper() { delete myPtr; }
private:
int* myPtr;
};
Maintenant, la classe ci-dessus encapsule un pointeur vers un int
. Toutes les ressources doivent être enveloppées d’une certaine manière pour la propreté (un destructeur le fait automatiquement) et l’exactitude.
Ce modèle est souvent appelé Resource-Acquisition is Initialization (RAII)
. L’idée est donc de lier un destructeur pour la propreté.
Par exemple, nous encapsulons de nombreuses fonctionnalités du langage C pour obtenir une interface orientée objet au lieu d’une interface procédurale.
Supposons que nous ayons une fonction fun()
.
void fun() { cout << "hero"; }
Une classe wrapper ressemblera à ci-dessous.
class temp {
void fun() { cout << "hero"; }
};
Pourquoi les classes wrapper sont-elles utilisées en C++
Voyons un exemple où des classes wrapper sont nécessaires.
Supposons qu’une entreprise utilise différents types de caméras. Désormais, chaque fabricant d’appareils photo aura différentes fonctions pour faire fonctionner l’appareil photo.
Maintenant, si un développeur veut créer une application ou ajouter des fonctions supplémentaires sur ces caméras, une façon serait de créer et d’écrire des codes séparés pour chaque type de caméra ou bien d’écrire une classe wrapper avec des fonctions supplémentaires qui s’enrouleront autour des caméras de code existantes.