Проверка во время выполнения броска из пустоты *

Скажи, что у меня естьvoid* содержащий указатель на неизвестноеclass, Я хочу использоватьdynamic_cast сделать проверку во время выполнения на тип класса, который я на самом деле. Например:

class Foo {};

void* bar = new Foo;

Если я попытаюсь сделатьdynamic_cast<Foo*>(bar) Я получил:

'void *': недопустимый тип выражения для dynamic_cast

Однако янеобходимость dynamic_cast потому что в моей реальной ситуации я не уверен, чтоbar на самом делеFoo*.

я прочелВот что одним из решений этого является создание базового класса для всех объектов, которыеbar может содержать,reinterpret_cast указатель на этот базовый класс, а затем попробуйтеdynamic_cast от этого объекта указатель наFoo.

Это сложно для меня, потому что объекты, которые могут быть сохранены вbar не все под моим контролем. (И потому что попытка воссоздать Java вызывает у меня изжогу.) Есть ли другой способ сделать это?

Ответы на вопрос(3)

Ваш ответ на вопрос