Verificação em tempo de execução de um elenco de um vazio *

Diga que eu tenho umvoid* contendo um ponteiro para um desconhecidoclass. Eu quero usardynamic_cast para verificar em tempo de execução o tipo de classe que realmente tenho. Por exemplo:

class Foo {};

void* bar = new Foo;

Se eu tentar fazerdynamic_cast<Foo*>(bar) Eu recebo:

'void *': tipo de expressão inválido para dynamic_cast

No entanto eunecessidade dynamic_cast porque na minha situação atual não tenho certeza de quebar é de fato umFoo*.

Eu liaqui Essa solução é criar uma classe base para todos os objetos quebar poderia conter,reinterpret_cast para um ponteiro para essa classe base e tentedynamic_cast desse ponteiro de objeto paraFoo.

Isso é difícil para mim porque os objetos que podem ser armazenados embar não estão todos sob meu controle. (E a causa de tentar recriar Java me dá azia.) Existe outra maneira de fazer isso?

questionAnswers(3)

yourAnswerToTheQuestion