最像指针, smart_ptr库中最有价值、最重要的组成部分,也是最有用的。

包装了new操作在堆上分配的动态对象 ,实现的是引用计数型的指针。

可以安全的放到标准容器中。

 

重载了* 和  ->

用get()得到原始指针

reset将引用数减1,至0时删除

支持比较运算符,基于内部指针

基于虚函数的多态代码时,类型转换使用 static_pointer_cast<T>等,返回类型为share_ptr,可被正确管理

 

几乎可以消灭new / delete

基本的线程安全,可被多个线程同时读取,而其它结果未定义

 

过多显示的new -- 使用工厂模式, make_shared<T>(Arg)

 

应用于标准容器:

将容器作为shared_ptr管理的对象

将shared_ptr作为容器的元素

应用于桥接模式(PIMPL)

应用于工厂模式

 

 

 

 

 

shared_array

接受的指针必须是new []的结果

提供[]重载

没有* –>重载

使用delete []释放资源

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-12
  • 2021-06-02
  • 2021-07-26
  • 2021-08-15
猜你喜欢
  • 2021-08-17
  • 2021-09-19
  • 2021-10-10
  • 2021-08-23
  • 2021-12-19
相关资源
相似解决方案