La solución más versátil para este problema es derivar su clase de una clase base que tiene una función virtual de "muerte". Algo como esto:
class IDisposable {
public:
virtual void Release() = 0;
};
Se cree generalmente que los objetos polimórficos deben tener destructores virtuales para apoyar la limpieza objeto propio. Sin embargo, esto es incompleto, porque no tiene en cuenta la administración de memoria potencialmente diferente de los objetos.
Por otro lado, este método no requiere el uso de destructores virtuales. Ahora es reemplazado por la función Release
que hace ambos: invocación del destructor correcto y liberando la memoria por los medios apropiados.
se encarga del objeto dest
tanto: destrucción
El objeto devuelto por la fábrica va a poner en práctica esta "interfaz".
Depende de a quién pertenece el objeto una vez creado. Pero nunca es una buena idea devolver un puntero ya que no tiene semántica de propiedad asociada. –