贡献者: addis
unique_ptr<类> p(类指针)
,其中 类指针 = new 类
指向一个需要 delete
的对象。
unique_ptr<类,删除函数类> p(类指针, 删除函数)
。删除函数
是 删除函数类
的一个对象。
删除函数类
和 删除函数
可以省略,省略后默认用 delete 类指针
。
删除函数
需要具有算符 void operator()(类* p) const
用于释放内存。
unique_ptr
的 destructor 会调用 删除函数(类指针)
释放内存。
*, ->, []
,也可以对 unique_ptr
使用。
p2 = move(p1)
可以转移。
p.get()
返回 类指针
。p.get_deleter()
返回 删除函数
的 ref。
if(p)
可以判断是否在管理一个对象。
p.reset(新指针)
调用原来对象的删除函数,并管理新的对象。
p2 = p1
复制,只有所有指向同一对象的 shared_ptr
的 destructor 都被调用,才会调用删除函数。
p.use_count()
返回有几个 shared_ptr
正在使用。
shared_ptr
,或者 weak_ptr
初始化
p.lock()
创建出管理对象的一个新的 shared_ptr
p.expired()
可以检查对象是否已经被删除。