美文网首页
C++11 std::shared_ptr

C++11 std::shared_ptr

作者: Joshua520 | 来源:发表于2021-08-17 10:46 被阅读0次

    shared_ptr是一种智能指针(smart pointer),作用有如同指针,但会记录有多少个shared_ptrs共同指向一个对象。这便是所谓的引用计数(reference counting)。
    一旦最后一个这样的指针被销毁,也就是一旦某个对象的引用计数变为0,这个对象会被自动删除。

    1、智能指针主要用途:方便资源管理,自动释放没有指针引用资源

    2、使用引用计数标识是否有多余指针指向该资源。(share_ptr本身会占用一个引用)

    3、赋值操作中,原来资源引用计数会减一,新指向的资源引用计数会加一。

    4、线程安全

    5、make_shared优于new,make_shared可以一次将需要内存分配好。

    6、std::shared_ptr的大小是原始指针的两倍,因为它的内部有一个原始指针指向资源,同时有个指针指向引用计数。

    7、引用计数是分配在动态分配的,std::shared_ptr支持拷贝,新的指针获可以获取前引用计数个数。

    相关文章

      网友评论

          本文标题:C++11 std::shared_ptr

          本文链接:https://www.haomeiwen.com/subject/mtlmbltx.html