我如何将基类智能指针转换为派生类智能指针

时间:2019-12-07 09:11:29

标签: c++11 pointers c++14

使用原始指针,我可以将基类指针转换为派生类指针。

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);

我得到了动态转换错误的无效目标类型。

0 个答案:

没有答案