Hola,
Me hallaba yo practicando un poco de C++, pues es un lenguaje que tendré que utilizar dentro de poco para ciertas cosillas y necesitaba refrescarlo un poco. Me puse por tanto a hacer varios exámenes prácticos de la asignatura de C++ que se impartía en mi uni, sin ningún problema hasta que me encontré con cierta cuestión:
Supongamos que tenemos una clase base: Profesor, y dos clases derivadas ProfesorX, ProfesorY.
En un momento del exámen hay una pregunta que versa lo siguiente:
"Añadir un método a las clases que modelen a los profesores creados que devuelva de que tipo son de la forma que considere más adecuada. Nota: Se valorará el uso de mecanismos alternativos implementados en el lenguaje C++ para lograr esta funcionalidad, aunque no es obligatorio su uso. Si ha utilizado este mecanismo, ¿Cómo se llama?"
Y el problema es que no tengo ni idea de cuál puede ser ese mecanismo del lenguaje C++.
A mi lo primero que se me ocurrío fué crear un método en la clase base "getType()" que devuelva "profesor", y redefinirlo en las clases derivadas para que devuelva "profesorX" y "profesorY".
Respecto a los mecanismo de C++ para esto, lo único que se me ocurre es utilizar type_info para devolver el tipo. Type_info internamente realiza un dynamic_cast para devolver el tipo de las clases, pero es una operación costosa y la verdad que no le veo sentido siendo dentro de las propias clases, tendría sentido desde otra clase para saber en tiempo de ejecución si un profesor es un profesorX o profesorY así que supongo que se referirá a otra cosa.
¿Alguna idea?