首页 > 编程语言 > 详细

shellmad-14_C++新特性 引用计数

时间:2020-08-24 10:05:44      阅读:59      评论:0      收藏:0      [点我收藏+]

要正确理解智能指针,首先必须理解引用计数技术。

深拷贝、浅拷贝的概念

深拷贝的优缺点:

优点:每一个对象(哪怕是通过拷贝构造函数实例化的对象)的指针都有指向的内存空间而不是共享,所以在对象析构的时候就不存在重复释放或内存泄漏的问题了。

缺点:内存开销大

  1. 注解:假如是a="hello,"; b="world!"; 现在要执行拷贝行为:b=a; 如果是深拷贝(不用默认的拷贝构造,而是自己写的拷贝构造),则首先为b动态分配和a所占用内存空间一样大小的内存空间,然后执行字符串复制, 把a的内容复制给b,这样a和b就会指向各自的内存空间。

浅拷贝优缺点:

优点:通过拷贝构造函数实例化的对象的指针数据变量指向共享的内存空间,因此内存开销较小。

缺点:对象析构的时候可能会重复释放或者造成内存泄漏。

  1. 注解:假如是a="hello,"; b="world!"; 现在要执行拷贝行为:b=a; 如果是浅拷贝(用默认的拷贝构造,而不是自己写的拷贝构造),则b会指向a指向的内存空间,这样a和b就会指向相同的内存空间,从而在拷贝的时候会造成内存泄漏,因为b此时改变了指向,那它原来指向的内存空间("world!")就变成了"孤儿"。

 

shellmad-14_C++新特性 引用计数

原文:https://www.cnblogs.com/yibeimingyue/p/13551815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!