Wrapper-Klassen in C++
In diesem Artikel erfahren Sie mehr über Wrapper-Klassen in C++ und wo sie verwendet werden.
Definition von Wrapper-Klassen in C++
Eine Wrapper-Klasse ist ein spezieller Klassentyp, der eine verwaltete Ressource umschließt. Sehen wir uns ein Beispiel an, um es besser zu verstehen.
Beispielcode:
class int_wrapper {
public:
int_wrapper(int value = 0) : myPtr(new int(value)) {}
~int_wrapper() { delete myPtr; }
private:
int* myPtr;
};
Nun verpackt die obige Klasse einen Zeiger auf ein int
. Alle Ressourcen sollten aus Gründen der Sauberkeit (ein Destruktor macht das automatisch) und Korrektheit auf irgendeine Weise verpackt werden.
Dieses Muster wird oft als Resource-Acquisition is Initialization (RAII)
bezeichnet. Die Idee ist also, einen Destruktor für Sauberkeit zu binden.
Zum Beispiel packen wir viele Funktionalitäten der C-Sprache ein, um eine objektorientierte Schnittstelle anstelle einer prozeduralen zu erhalten.
Angenommen, wir haben eine Funktion fun()
.
void fun() { cout << "hero"; }
Eine Wrapper-Klasse sieht wie folgt aus.
class temp {
void fun() { cout << "hero"; }
};
Warum werden Wrapper-Klassen in C++ verwendet
Sehen wir uns ein Beispiel an, in dem Wrapper-Klassen benötigt werden.
Angenommen, ein Unternehmen verwendet verschiedene Arten von Kameras. Jetzt wird jeder Kamerahersteller unterschiedliche Funktionen haben, um die Kamera zum Laufen zu bringen.
Wenn ein Entwickler nun eine Anwendung erstellen oder diesen Kameras zusätzliche Funktionen hinzufügen möchte, besteht eine Möglichkeit darin, separate Codes für jeden Kameratyp zu erstellen und zu schreiben oder eine Wrapper-Klasse mit zusätzlichen Funktionen zu schreiben, die die vorhandenen Codekameras umschließen.