QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1716|回复: 4

请教C++中的深拷贝和浅拷贝的区别?

[复制链接]
发表于 2003-9-21 13:56:10 | 显示全部楼层 |阅读模式
我经常看到c++书中提到深拷贝和浅拷贝不知他们有什么区别?求大哥们帮帮小弟。
发表于 2003-9-21 19:55:44 | 显示全部楼层
比如

class A {
int *p;
A() { p = new int[10]; }
~A() { delete []p; }
}

如果是浅拷贝,B = A,B.p就等于A.p,所以析构的时候就会两次delete了一块内存
回复

使用道具 举报

 楼主| 发表于 2003-9-21 21:02:17 | 显示全部楼层
楼上的大哥,那么深拷贝呢?会有什么不同吗?
回复

使用道具 举报

发表于 2003-9-21 23:05:26 | 显示全部楼层
A deep copy implies duplicating an object. A shallow copy is a reference copy, i.e. just a pointer to a shared data block.
回复

使用道具 举报

 楼主| 发表于 2003-9-22 10:07:25 | 显示全部楼层
[quote:ef53f8208b="HOUSCOUS"]A deep copy implies duplicating an object. A shallow copy is a reference copy, i.e. just a pointer to a shared data block.[/quote]

楼上的大哥,你的意思是深拷贝是by value,浅拷贝是by reference。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-14 11:34 , Processed in 0.035655 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表