浅拷贝与深拷贝的区别

 我来答
博学还诚挚的小雀B
2018-05-04 · TA获得超过1888个赞
知道答主
回答量:25
采纳率:0%
帮助的人:4433
展开全部

一.深拷贝

  1. 源对象和副本对象是不一样的两个对象。

  2. 源对象引用计数不变,副本对象计数器为1(因为是新产生的)。

  3. 至少有一层是对象复制。

二.浅拷贝

  1. 源对象和副本对象是同样的对象。

  2. 源对象(副本对象)引入计数器+1,等同于做一次retain的操作。

  3. 本质:没有生产新的对象。

从整体上来讲,深拷贝和浅拷贝的不同地方主要还是在于指针(或与指针)方面,浅拷贝仅仅是简易的将源悉者对象(这里是指广义的对象,不只是单指类的实例)的指针赋值给目标对象,对目标指针的操作就是对源对象的操作,因此在大部分情况下握历,目标对象析构(或跳出段陆搜其可见域)之后,源对象相关部分也就一同析构了。而深拷贝,是为目标对象重新分配空间,这样就能够和源对象的操作区分。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式