您的位置:首页 > 编程语言 > C语言/C++

【C++/Boost Lib】如何初始化一个shared_ptr指针。

2014-08-22 23:12 495 查看
shared_ptr指针带有有参数的构造函数。对于通常的定义,不需要显示的初始化。其构造函数代码如下:
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
};

但是,如果是Map或者Set的元素,则需要提供显示的初始值。(一般是“空值”。)提供这种初值的方法是boost::shared_ptr<class T> ()。

这种初始化的方法是C++中常见的一种设计方法:给构造函数一个default值,然后,在需要空值的时候,用一个临时变量来初始化。

注意:不能直接使用NULL或者0来初始化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: