【C++/Boost Lib】如何初始化一个shared_ptr指针。
2014-08-22 23:12
495 查看
shared_ptr指针带有有参数的构造函数。对于通常的定义,不需要显示的初始化。其构造函数代码如下:
但是,如果是Map或者Set的元素,则需要提供显示的初始值。(一般是“空值”。)提供这种初值的方法是boost::shared_ptr<class T> ()。
这种初始化的方法是C++中常见的一种设计方法:给构造函数一个default值,然后,在需要空值的时候,用一个临时变量来初始化。
注意:不能直接使用NULL或者0来初始化。
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来初始化。
相关文章推荐
- 如何把this指针转换成boost的shared_ptr
- 如何把this指针转换成boost的shared_ptr
- Boost智能指针——weak_ptr vs shared_ptr
- [5] 智能指针boost::shared_ptr
- 关于boost 库 shared_ptr 智能指针的循环引用【2013.10.22】
- Boost智能指针——shared_ptr
- 智能指针tr1::shared_ptr、boost::shared_ptr使用
- boost 智能指针auto_ptr scoped_ptr shared_ptr scoped_array shared_array 总结
- 智能指针boost::shared_ptr
- boost之shared_ptr的一个计数小问题
- [置顶] 从零开始学C++之boost库(一):详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> 源码分析)
- Boost智能指针——scoped_ptr和shared_ptr
- [置顶] 从零开始学C++之boost库(一):详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> 源码分析)
- Boost 智能指针错误shared_ptr Assertion px != 0 failed
- Boost智能指针——shared_ptr
- Boost智能指针——shared_ptr
- Boost智能指针——shared_ptr
- boost中的智能指针shared_ptr的指针管理
- 如何初始化一个指针数组
- 记录以下boost::shared_ptr的一个使用细节