Clases Wrapper en C++

Suraj P 12 octubre 2023
  1. Definición de clases contenedoras en C++
  2. ¿Por qué se usan las clases contenedoras en C++?
Clases Wrapper en C++

Este artículo enseñará sobre las clases contenedoras en C++ y dónde se usa.

Definición de clases contenedoras en C++

Una clase contenedora es un tipo especial de clase que envuelve un recurso administrado. Veamos un ejemplo para entenderlo mejor.

Código de ejemplo:

class int_wrapper {
 public:
  int_wrapper(int value = 0) : myPtr(new int(value)) {}

  ~int_wrapper() { delete myPtr; }

 private:
  int* myPtr;
};

Ahora la clase anterior envuelve un puntero a un int. Todos los recursos deben envolverse de alguna manera para la limpieza (un destructor lo hace automáticamente) y la corrección.

Este patrón a menudo se denomina Adquisición de recursos es inicialización (RAII). Entonces, la idea es vincular un destructor para la limpieza.

Por ejemplo, envolvemos muchas funcionalidades del lenguaje C para obtener una interfaz orientada a objetos en lugar de una de procedimiento.

Supongamos que tenemos una función fun().

void fun() { cout << "hero"; }

Una clase contenedora se verá como a continuación.

class temp {
  void fun() { cout << "hero"; }
};

¿Por qué se usan las clases contenedoras en C++?

Veamos un ejemplo donde se necesitan clases contenedoras.

Supongamos que una empresa utiliza diferentes tipos de cámaras. Ahora, cada fabricante de cámaras tendrá diferentes funciones para que la cámara funcione.

Ahora, si un desarrollador desea crear una aplicación o agregar funciones adicionales en estas cámaras, una forma sería crear y escribir códigos separados para cada tipo de cámara o escribir una clase contenedora con funciones adicionales que envuelvan las cámaras de código existentes.

Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Artículo relacionado - C++ Class