C++智能指针

来源:互联网 发布:飞秋软件 编辑:程序博客网 时间:2024/05/17 23:40

STL:auto_ptr,unique_ptr

Boost:scoped_ptr,shared_ptr,weak_ptr


auto_ptr:不能存数组(它只能delete非数组的对象),不能放进容器中,不能与其它auto_ptr共享对象所有权。初始化时用auto_ptr<T> p(new T);

unique_ptr:能存数组,能放进容器中,能自定义delete,不能进行复制

scoped_ptr:类似auto_ptr但无法转移所有权(复制或作返回值)

shared_ptr:维持一个计数器,当计数器为0时(没有指向该对象的shared_ptr)才delete对象

weak_ptr:从shared_ptr退化而来,不计数,可以检查对象是否有效


强智能指针,弱智能指针