Una simple duda que tengo al manejar unas clases.
supongamos que tengo como objetivo crear un dato tipo puntero a int que trabaje como un array.
Código C++:
Ver originalclass Objeto
{
public:
Objeto();
~Objeto();
private:
int *dato;
};
Objeto::Objeto()
{
dato = NULL;
}
Objeto::~Objeto()
{
delete [] dato;
}
Podemos ver que esta clase no permite asignarle un valor ningun al puntero y simplemente lo crea como nulo, y cuando se destruye libera la memoria (que no se reservo ninguna) que el puntero dato utilizaba.
¿Esta practica sería desastrosa?.
¿Es una solución lógica hacer esto?:
Código C++:
Ver originalObjeto::~Objeto()
{
if (dato)
delete [] dato;
}