深拷贝 浅拷贝 引用计数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深拷贝 浅拷贝 引用计数相关的知识,希望对你有一定的参考价值。

;深拷贝 浅拷贝
深拷贝(成员用到了指针存储空间地址)每个对象的成员都有自己独立的成员内存地址空间,造成了浪费
浅拷贝,把原对象的指针也直接拷贝过来我还是用的这一片空间,但是析构会有重复释放问题,解决重复释放用引用计数记录这个类产生了多少对象,析构的时候--引用计数就可以了
计数为0   delete 这块内存空间

 

 ;引用计数技术
优点:所有对象共享同一片空间,间接的达到了对象间的数据共享
缺点:一旦一个对象改变了这片内存,那么所有的对象都受到影响
;写时拷贝技术
当对象需要操作这一块空间存放数据时看看它是否对这块空间产生了写操作在决定是深拷贝还是浅拷贝
 
 
;拷贝构造发生时机
实例化一个对象并且右值是一个对象,这是后发生拷贝构造
class obj2=obj1 发生拷贝构造
obj2=obj3; 不发生拷贝构造原因obj2不是新实例化的对象, 可以重写=号处理指针

以上是关于深拷贝 浅拷贝 引用计数的主要内容,如果未能解决你的问题,请参考以下文章

深拷贝&浅拷贝&引用计数&写时拷贝

C语言面试题C++中String类引用计数器的浅拷贝写法与深拷贝写法

Python中的对象引用浅拷贝与深拷贝

objective-c中的深浅拷贝

C++ 深浅拷贝写时拷贝

深浅拷贝问题