Digamos que tengo una clase Base y varias Clases derivadas. ¿Hay alguna manera de convertir un objeto a una de las clases derivadas sin la necesidad de escribir algo como esto:C++ casting programmatically: ¿se puede hacer?
string typename = typeid(*object).name();
if(typename == "Derived1") {
Derived1 *d1 = static_cast< Derived1*>(object);
}
else if(typename == "Derived2") {
Derived2 *d2 = static_cast < Derived2*>(object);
}
...
else {
...
}
Este es un detalle minucioso, pero quería mencionarlo. Quiere decir d1-> y d2-> en lugar de d1. y d2. ,¿derecho? Como los tipos de puntero usan el operador de flecha para llegar a las funciones de miembro. :) –