shared_ptr的析构函数
时间: 2023-10-10 21:12:06 浏览: 110
析构函数应用
shared_ptr 的析构函数会执行以下操作:
1. 检查共享引用计数器(shared count),如果当前对象是最后一个拥有共享资源的 shared_ptr 对象,则执行以下步骤:
a. 调用删除器(deleter)来释放共享资源。删除器是在创建 shared_ptr 对象时可选择提供的用户定义函数,用于自定义资源的释放方式。
b. 释放共享引用计数器。
2. 如果当前对象不是最后一个拥有共享资源的 shared_ptr 对象,则只会递减共享引用计数器。
总之,shared_ptr 通过共享引用计数(shared count)来跟踪多个 shared_ptr 对象是否共享同一个资源。在最后一个拥有资源的 shared_ptr 对象销毁时,析构函数负责销毁该资源。
阅读全文