pregunta sobre dynamic_cast

Iniciado por Gabilan81, 4 Octubre 2010, 19:23 PM

0 Miembros y 1 Visitante están viendo este tema.

Gabilan81

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

Littlehorse

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 (cpp) [Seleccionar]
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
An expert is a man who has made all the mistakes which can be made, in a very narrow field.