dynamic_cast (Problema con)

29/04/2004 - 02:43 por PabloLFC | Informe spam
quiero listar un conjunto de vehículos que guardé en una lista simplemente
enlazada que guarda objetos de la clase cVehiculo.
las clases herederas de cVehiculo son cAuto, cCamion, etc
el ms visual c++ me tira un error (una excepcion o algo asi) en la linea del
1er if, creo que a causa del dynamic_cast. alguien puede explicarme en qué
me estoy equivocando?
gracias!
Pablo Tortorella
pd. les paso las líneas de las que les hablo

void cIterador::listar()
{
setNodoActual(_lista.getPrimero());
while (getNodoActual() != 0)
{
if(cAuto* a= dynamic_cast<cAuto *>((getNodoActual()->getVehiculo())))
a->mostrar();

setNodoActual(getNodoActual()->getSiguiente());
}
}
 

Leer las respuestas

#1 Cholo Lennon
29/04/2004 - 05:47 | Informe spam
Para que tu inquietud esté completa y podamos ayudarte te falta especificar
que tipo de error te genera el compilador:

Es posible que tu error se deba a alguna de estas 2 situaciones:

1- Compilar dynamic_cast falla porque la clase base CVehiculo no es
polimórfica, es decir no define al menos una función virtual.
2- Compilar dynamic_cast falla ya que el mismo requiere que esté activado el
RTTI del compilador, es decir la información de tipos en tiempo de
ejecución. En VC 6 estó se fija en Menú Project/Settings/C-C++/Category C++
Languaje/Enable Run-Time Type Information.

Saludos
Cholo Lennon
Salta, ARG

Preguntas similares