Операнд dynamic_cast не является указателем типа
как я могу это исправить?
Не используя не указатель введите в качестве операнда dynamic_cast
. Другими словами, используя тип указателя в качестве операнда.
Вы можете получить указатель из общего указателя, используя get
функцию-член.
Будьте осторожны, чтобы не допустить утечки этого пустого указателя выйти за рамки функции. Вы можете доверять его действительности только до тех пор, пока аргумент base
указывает на объект. Также не пытайтесь завладеть этим голым указателем, так как его владение уже является общим.
PS std::shared_ptr
находится в стандартной библиотеке с C ++ 11.
PPS dynamic_cast
- это кодовый запах.