您的位置:首页 > 其它

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

2013-08-21 15:27 1251 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: