我可以shared_ptr
用NULL
值初始化吗?
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;