初始化boost::shared_ptr为NULL

Initialize a boost::shared_ptr to NULL

本文关键字:NULL ptr shared boost 初始化      更新时间:2023-10-16

我可以用NULL的值初始化shared_ptr吗?

boost::shared_ptr<Type> s_obj(NULL);

如果没有,那么怎么做?

默认结构为您做了这些:

template<class T> class shared_ptr
{
public:
    explicit shared_ptr(T * p = 0): px(p)
    { 
        //Snip
    }
    //...
private:
    T * px;            // contained pointer
    count_type * pn;   // ptr to reference counter
};

这是默认结构,即:

boost::shared_ptr<Type> s_obj;

s_obj现在持有一个空指针,当真值测试时计算为布尔值false;