Tradicionalmente, en C++, creaba cualquier dependencia en el constructor y la eliminaba en el destructor.Nombre del patrón para crear en el constructor, eliminar en el destructor (C++)
class A
{
public:
A() { m_b = new B(); }
~A() { delete m_b; }
private:
B* m_b;
};
Esta técnica/patrón de adquisición de recursos, ¿tiene un nombre común?
Estoy bastante seguro de que lo he leído en alguna parte pero no puedo encontrarlo ahora.
Editar:
Como muchos han señalado, esta clase es incompleta y realmente debería implementar un constructor de copias y un operador de asignación.
Originalmente, lo dejé intencionalmente porque no era relevante para la pregunta real: el nombre del patrón. Sin embargo, para completar y alentar buenas prácticas, la respuesta aceptada es lo que es.
Mala clase A. Copiar el constructor y el operador de asignación faltan. –
Una solución más simple si no se requiere copia/asignación es derivar de boost :: noncopyable. Le ahorra tener que definir esas dos funciones. (y se asegura de que no se llamen accidentalmente) – jalf