I tienen clase base A, clase B hereda de A, clase C, que es una clase de plantilla hereda de A. clase D hereda de C. La relación es la siguiente:sobre reparto dinámico el C++ con clase de plantilla
A
/\
B C (template class)
\
D
Puedo crear un objeto A O1 con el objeto D D1, luego deseo hacer una conversión dinámica O1 a un objeto C1 de tipo C. Pero creo que falla. Mi pregunta es por qué este proceso falla?
Luego uso static_cast para crear el objeto de tipo C C2 del objeto D D1, y comprobé que C2 tiene el valor correcto de D2. ¿Siempre es exitoso convertir del tipo D al tipo C usando static_cast?
Gracias!
Publique el código completo, junto con los resultados esperados y reales. Hay un número infinito de cosas que podrían estar yendo mal, y no podemos decir cuál es sin un código específico. – Mankarse
¿Su clase base tiene funciones virtuales? Si no, no puedes usar 'dynamic_cast'. – GManNickG
Tenga en cuenta que la mayoría de estas conversiones solo son válidas para los punteros y las referencias, no para los objetos mismos. No está claro a partir de su descripción exactamente lo que está tratando de convertir; algún código de ejemplo sería útil. –