1.为什么需要unique_ptr
与shared_ptr作用类似,需要解决内存泄漏的问题,但是却不需要使用shared_ptr的引用计数,所以为了减少消耗,就需要一个这样的智能指针。但是使用已被废弃的auto_ptr的话就会有新的问题,auto_ptr在使用过程中如果被拷贝构造或者赋值的话,被复制的auto_ptr就失去了作用,这个时候就需要在auto_ptr的基础上禁用拷贝构造以及赋值操作,也就成了unique_ptr。
2.什么是unique_ptr
一个unique_ptr独享它指向的对象。也就是说,同时只有一个unique_ptr指向同一个对象,当这个unique_ptr被销毁时,指向的对象也随即被销毁。
使用unique_ptr需要引入<memory.h>
3.unique_ptr特性
unique_ptr禁用了拷贝构造以及赋值操作,也就导致了下面的这些操作无法完成。
void testFunction(std::unique_ptr<Test> t){
t->getString();
}
void features(){
// Disable copy from lvalue.
// unique_ptr(const unique_ptr&) = delete;
// unique_ptr& operator=(const unique_ptr&) = delete;
//不能进行拷贝构造以及赋值运算,也就表示不能作为函数参数传递
std::unique_ptr<Test> t