shared_ptr的概念和一些特性调查

打印 上一主题 下一主题

主题 882|帖子 882|积分 2646

shared_ptr

概念

shared_ptr 是 C++11 中引入的一种智能指针,用于主动管理资源,特别是动态分配的内存。它属于  头文件中定义的智能指针类之一,用于解决动态内存分配中的内存泄漏和资源生命周期管理题目。shared_ptr 通过引用计数机制来实现多个 shared_ptr 实例共享同一资源。
具有较好的安全性,可以避免内存泄漏和悬挂指针题目。
特性

线程安全的分析

shared_ptr 自身的引用计数是线程安全的,但指向的对象本身不是线程安全的。如果多个线程需要访问同一对象,需要额外的同步机制。
二进制兼容性

如果客户代码里有 new Bar,那么肯定不安全,因为 new 的字节数不够装下新 Bar。相反,如果 library 通过 factory 返回 Bar* (并通过 factory 来销毁对象)大概直接返回 shared_ptr,客户端不需要用到 sizeof(Bar),那么可能是安全的。
即把创建交给动态库,而不是由客户自己创建。
陈硕博客
shared_ptr的析构函数可以调用基类的没有设置为virtual的析构函数

[code]#include #include class base{public:    base()    {        std::cout
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表