zoukankan      html  css  js  c++  java
  • shared_ptr & shared_array

    最像指针, 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 []释放资源

  • 相关阅读:
    php二维数组排序
    重学C语言 -- printf,scanf
    php调试利器 -- xdebug
    composer php依赖管理工具
    现代php开发
    php新特性--持续更新
    2016年书单
    jenkins集成gitlab实现自动合并
    etcd安装
    nginx 日志切割
  • 原文地址:https://www.cnblogs.com/justin_s/p/2115701.html
Copyright © 2011-2022 走看看