boost shared_ptr 基类转到子类 boost::dynamic_pointer_cast

来源:互联网 发布:淘宝买处方药 编辑:程序博客网 时间:2024/05/22 09:00

#include "boost/shared_ptr.hpp"    class Base  {  public:        Base(){};      virtual ~Base(){};  };    class DeriveClass : public Base  {  public:        DeriveClass():Base(){};      virtual ~DeriveClass(){};  };      int main(int argc, _TCHAR* argv[])    {        boost::shared_ptr<Base> ptrBase = boost::shared_ptr<DeriveClass>(new DeriveClass()); // 这样转换成功      // 下面出现编译错误    boost::shared_ptr<DeriveClass> ptrDerive = dynamic_cast<boost::shared_ptr<DeriveClass> >(ptrBase);      // 下面正确    boost::shared_ptr<DeriveClass> ptrDerive = boost::dynamic_pointer_cast<DeriveClass>(ptrBase);     return 0;}

原创粉丝点击