关于 shared_ptr
shared_ptr
是一种共享所有权的智能指针,它允许我们安全地访问和管理对象的生命周期。shared_ptr
的多个实例通过共享控制块结构来控制对象的生命周期。
控制块维护了引用计数(reference count),弱引用计数(weak count)和其他必要的信息,通过这些信息,控制块能够确定一个对象在内存中是否可以被安全销毁。
当使用原始指针构造或者初始化一个shared_ptr
时,将会创建一个新的控制块。为了确保一个对象仅由一个共享的控制块管理,必须通过复制已存在的shared_ptr
对象来创建一个新的shared_ptr
实例,例如:
void good()
{
auto p{new int...