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
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:
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