使用原始指针,我可以将基类指针转换为派生类指针。
Base *b = new Derived<int>(1);
Derived<int> *d = dynamic_cast<Derived<int> *>(b);
当我尝试将其用于智能指针
std::shared_ptr<Geometry> geom = localContainer->GetGeometry(); // This function return Geometry shared pointer
std::shared_ptr<SumFont> fnt = dynamic_cast< std::shared_ptr<SumFont> >(geom);
我得到了动态转换错误的无效目标类型。