Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/02/2009, 09:39
Danisss
 
Fecha de Ingreso: febrero-2009
Mensajes: 4
Antigüedad: 15 años, 3 meses
Puntos: 0
Problema con dynamic_cast

Hola a todos!

Soy nuevo en el foro, me presento, me llamo Dani y soy estudiante de informatica.

Tengo un problema al usar dynamic_cast:

Tengo dos clases (PiezaElectrica y PiezaMecanica) que derivan de una super clase (Pieza), cuando trato de hacer un dynamic_cast para comprobar de que clase derivada es el objeto apuntado por un puntero de la clase base me salta un error :
'abnormal program termination'

Un ejemplo:

void CEstacionTratamiento::TratarPieza(CPieza* p)
{
if(CPiezaElectrica *pe = dynamic_cast<CPiezaElectrica *>(p))
{
cout<<"es una pieza electrica"<<endl;
CubaBarnizado(pe);
}
if(CPiezaMecanica *pe = dynamic_cast<CPiezaMecanica *>(p))
{
cout<<"es una pieza mecanica"<<endl;
}
}

¿Que puede estar pasando?
Gracias de antemano!