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?