¿Cómo verifico en tiempo de ejecución si un objeto es del tipo ClassA o del tipo derivado ClassB? En un caso que tengo que manejar ambos casos por separadoBuscar el tipo derivado (C++)
ClassA* SomeClass::doSomething (ClassA*)
{
if(/* parameter is of type base class */) {
} else if { /* derived class */) {
}
}
Tal vez podríamos decir que la clase derivada ClassB tiene algunas capacidades especiales. ¿Pero cómo lo hago sin cambiar la clase existente ClassA?
La clase A no necesita saber nada sobre ClassB. –
La comprobación de los tipos de clase, en general, es un indicador de un mal diseño. Ver el patrón de diseño * Visitante * para una alternativa. También estudie sobre polimorfismo. –