Instanciando classes pelo nome com padrão de fábrica

Suponha que eu tenha uma lista de classesA, B, C, ... que todos herdam deBase.

Eu recebo o nome da classe como uma string do usuário, e quero instanciar a classe certa e retornar um ponteiro paraBase. Como você implementaria isso?

Pensei em usar uma tabela de hash com o nome da classe como a chave, e um ponteiro de função para uma função que instancia a classe certa e retorna umBase *.

No entanto, acho que posso usar o padrão de fábrica aqui e torná-lo muito mais fácil, mas não consigo me lembrar bem dele, então pensei em pedir sugestões.

questionAnswers(4)

yourAnswerToTheQuestion