码迷,mamicode.com
首页 > 其他好文 > 详细

shared_ptr(作为局部变量返回)

时间:2017-07-06 22:49:14      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:shared   计数   执行   拷贝   智能指针   完成   ptr   传递   析构   

  智能指针:shared_ptr

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

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

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

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

shared_ptr(作为局部变量返回)

标签:shared   计数   执行   拷贝   智能指针   完成   ptr   传递   析构   

原文地址:http://www.cnblogs.com/kilen/p/7128600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!