Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Gabilan81 en 4 Octubre 2010, 19:23 pm



Título: pregunta sobre dynamic_cast
Publicado por: Gabilan81 en 4 Octubre 2010, 19:23 pm
Buenas, tengo una pregunta que me surgio al intentar liberar la memoria luego de utilizar el operador dynamic_cast.

tengo algo asi:

void funcion(clase_base * base){

clase_derivada * der = dynamic_cast<clase_derivada*)(base);

//trabajo con el puntero "der"

delete(base);

}

mi pregunta es: esta bien hacer delete(base) o tendria q hacer delete(der), o da igual???

Muchas gracias


Título: Re: pregunta sobre dynamic_cast
Publicado por: Littlehorse en 4 Octubre 2010, 23:22 pm
Lo primero y principal es aclarar que lo que quieres hacer con dynamic_cast no te puede funcionar al menos que la clase base sea polimórfica, es decir, me refiero a esta linea:

Código
  1. clase_derivada * der = dynamic_cast<clase_derivada*)(base);

En cuanto a lo del delete, si podes postea una mínima expresión compilable sobre lo que queres hacer y la estructura que tenes en las clases, porque en realidad con lo que pusiste no puede saberse exactamente que es lo que deberías usar.

Saludos