shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象。
shared_ptr
使用引用计数,每一个shared_ptr的拷贝都指向相同的内存。每使用它一次,内部的引用计数加1,每析构一次,内部的引用计数减1,减为0时,释放所指向的堆内存。shared_ptr内部的引用计数是安全的,但是在多线程时对象的读取需要加锁。
shared_ptr有如下三种初始化方式:
make_shared
构造。为了更好的了解智能指针,我们从最简单的例子内存申请开始,先看看下面的代码
#include
#include