Duplicar posible:
Is there a way to instantiate objects from a string holding their class name?¿Cómo puedo instanciar un objeto sabiendo solo su nombre?
En C++, yo quiero tener mi usuario introduzca el nombre del tipo de objeto que se ha creado en tiempo de ejecución, y, dependiendo de la cadena de recibo de ellos, el programa instanciará el objeto correcto (en resumen, estoy implementando el patrón de método de fábrica). Sin embargo, si el programa tiene que admitir un nuevo tipo de objeto, entonces no se permite modificar el código existente.
Entonces, ¿es posible eliminar todo el if ... else if ... else if ... cosas del método, y todavía tener mi programa instanciar un objeto correcto de un tipo de producto específico (de muchos, que se conocen solo en tiempo de compilación)?
Mi búsqueda alrededor me consiguió este enlace: Is there a way to instantiate objects from a string holding their class name? y parece que es lo que quiero, pero no puedo entender el código en absoluto.
Cualquier ayuda sería muy apreciada.
@CharlesB no necesita reflexión, puede utilizar una fábrica. –
@LuchianGrigore: fábrica es un patrón de diseño, la reflexión es una función de idioma. Si quieres una fábrica que funcione sin if ... else ... else ... necesitas un lenguaje que tenga reflejo, o una arquitectura de complemento binario, como en la respuesta de Alessandro – CharlesB