ajfkz
ajfkz
2021-05-06 15:00
采纳率: 75%
浏览 14

shared_ptr

shared_ptr局部变量离开作用域后如果引用计数不为0,内存会销毁吗

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • bosaidongmomo
    bosaidongmomo 2021-05-06 15:02
    已采纳
    点赞 评论
  • frank2102

    智能指针:shared_ptr

      1、一个局部的shared_ptr 作为返回值过程:当shared_ptr 被创建的时候,自身的引用计数 +1,当前引用计数为 1 , 按值返回以后 引用计数 + 1 (拷贝构造函数,就是可以理解为基础类型的拷贝),当前引用计数为 2 ,函数执行完成之后,申请的shared_ptr析构(销毁变量),引用计数 -1 ,此时复制出来的shared_ptr 引用计数变为 1 ;

      2、不管是基础类型还是 对象 ,作为局部变量时都不可以按引用返回,原因(引用的概念);

      3、带返回值的函数的返回过程:先复制,在销毁 ;

      4、当shared_ptr 按引用作为参数传递时,自身不会进行引用 + 1 计数,引用以后的自身计数还是引用之前的计数;

    点赞 评论
  • bosaidongmomo
    bosaidongmomo 2021-05-06 15:02

    点赞 评论
  • it_xiangqiang
    C和C++技术博客 2021-05-06 16:20

    也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html

    点赞 评论

相关推荐