我可以使用shared_ptr
值初始化NULL
吗?
boost::shared_ptr<Type> s_obj(NULL);
如果没有,那怎么样?
答案 0 :(得分:22)
默认构造为您执行此操作:
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
};
答案 1 :(得分:17)
这是默认构造,即:
boost::shared_ptr<Type> s_obj;
s_obj
现在持有一个空指针,并在经过真值测试时计算为布尔值假;