Eventuali duplicati:
Is there a way to instantiate objects from a string holding their class name?Come posso istanziare un oggetto conoscendo solo il suo nome?
In C++, voglio avere il mio utente immettere il nome tipo di oggetto da creare in fase di esecuzione, e, a seconda della stringa ottengo da loro, il programma istanzia l'oggetto corretto (in breve, sto implementando un modello di metodo factory). Tuttavia, se il programma deve supportare un nuovo tipo di oggetto, la modifica del codice esistente non è consentita.
Quindi è possibile rimuovere tutto il if ... else if ... else if ... roba dal metodo, e avere ancora il mio programma che istanzia un oggetto corretto di un tipo specifico di prodotto (tra tanti, che sono noti solo al momento della compilazione)?
La mia ricerca in giro mi ha ottenuto questo link: Is there a way to instantiate objects from a string holding their class name? e sembra sia quello che voglio ma non riesco a capire il codice.
Qualsiasi aiuto sarebbe molto apprezzato.
@CharlesB non è necessario il riflesso, è possibile utilizzare una fabbrica. –
@LuchianGrigore: la fabbrica è un motivo di progettazione, la riflessione è una funzione del linguaggio. Se vuoi una factory che lavori senza if..else..else ... hai bisogno di un linguaggio che abbia riflessioni, o un'architettura di plugin binario, come nella risposta di Alessandro – CharlesB