社区
C语言
帖子详情
C++中何为深度COPY???
Grrr
2001-11-15 09:30:56
看到一些书上提到深度拷贝,请详细说明!谢谢!!!
...全文
130
14
打赏
收藏
C++中何为深度COPY???
看到一些书上提到深度拷贝,请详细说明!谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Yake
2001-11-16
打赏
举报
回复
比如說:你在一個類的構造函數中為一根指針申請了資源,而在析構函數中釋放資源(實際情況下,應該避免這樣做),而你又沒有為這個類寫一個拷貝構造函數,那麽,在必要的時候(比如在值傳遞參數時),編譯器會按位拷貝,這就是所謂的"淺拷貝",因爲並未替拷貝分配資源,那麽就有兩根不同的指針指向同一塊資源,當兩根指針之一被delete掉(比如拷貝被析構),那麽資源也不存在了,那另外一根指針就成了"野指針",牠的資源已經不存在,而牠仍然被認爲是有效的."深拷貝"在這個例子中的意思就是要替拷貝分配資源,使兩根指針各自指向自己的資源.
mthcy
2001-11-16
打赏
举报
回复
Yake(不要打疯子,也许他是你的兄弟……)说的有理
Mubin_Du
2001-11-16
打赏
举报
回复
深拷贝就是在内存中存在两份,浅拷贝就是一份。
holyfire
2001-11-16
打赏
举报
回复
http://www.csdn.net/develop/read_article.asp?id=10638
sleep_bug
2001-11-16
打赏
举报
回复
essential c++第四章有详细解答。
但说法不同。
感觉比钱能说的简洁透彻,例子也很短很典型(记得老钱的例子好长呀!看的头昏)。
clippy
2001-11-15
打赏
举报
回复
深拷贝一般需要自己编写有关操作
具体问题具体处理
Grrr
2001-11-15
打赏
举报
回复
还是不大明白,拜托了,再详细点!
Kaye
2001-11-15
打赏
举报
回复
简单地说,就是浅拷贝的时候你用已有的对象生成新的对象的时候,新对象里的指针将直接从已有的对象赋值,也就是指向已有的对象的成员指针指向的地址,原删除原对象的时候新对象的成员指针就悬挂了!当定义拷贝构造函数的时候,可以在构造函数中对指针做处理,分配内存,然后拷贝原对象成员指针指向的内容,这样解决了指针问题!
zjlsct
2001-11-15
打赏
举报
回复
深拷贝复制了资源,使不同的对象拥有各自的资源,不会因为其中一个的析构而影响另一个
Grrr
2001-11-15
打赏
举报
回复
那浅拷贝和浅拷贝对指针数据成员的处理有何不同,我只知道浅拷贝会出现指针悬挂问题,而深拷贝不会,为什么????请详细说明!!!谢谢!
yixudong
2001-11-15
打赏
举报
回复
前面的一种情况叫浅拷贝,后一种叫深拷贝。
yixudong
2001-11-15
打赏
举报
回复
sorry
not相似but相同
yixudong
2001-11-15
打赏
举报
回复
c++中的类有一种叫做拷贝构造函数的成员函数,如果你在c++原程序中不做定义和声明,那么当你做以下的操作:
classA A;
B=A;
时B和A是同一对象;如果定义了拷贝构造函数,B为与A的内容相似的新对象。
(这些概念在钱能的《c++程序设计》中有详细的介绍。)
moonmhb
2001-11-15
打赏
举报
回复
I want to know ,too
征服
C++
11视频精讲
【为什么还需要学习
C++
?】 你是否接触很多语言,但从来没有了解过编程语言的本质? 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础...
C++
程序员应了解的那些事(55)静态成员函数没有this指针,不与类的实例(对象)“挂钩”【即不能声明为const、volatile、virtual】
//来自对《
深度
探索
C++
对象模型 侯捷译》的一点总结、体会。 静态成员函数没有this指针,不与类的实例(对象)“挂钩”,所以
C++
静态成员函数不能声明为const、volatile、virtual。那么const/ volatile /virtual这些...
关于 Intel Realsense
深度
图像处理.1(
C++
)
Realsense SDK2.0 +
C++
rs-hello-realsense rs-hello-realsense示例演示了连接到英特尔实感设备以及通过打印到摄像头视野
中
心物体的距离来利用
深度
数据的基础知识。 假设相机已连接,您应该看到线路不断更新...
C++
特殊成员函数(深拷贝和深赋值)
在
C++
的类
中
有这么一些成员函数是自动定义的,具体如下所示: 1.默认构造函数 2.默认析构函数 3.复制构造函数(即拷贝构造函数) 4.赋值运算符 5.地址运算符
C++
11提供了另外的两个特殊成员函数:移动构造函数...
《
深度
探索
C++
对象模型》读书笔记
C++
的模型可以有多种实现方式,例如表驱动,对象模型等,如下是对象模型的实例,其
中
类的静态变量和静态函数单独放在类之外,包含类的虚函数的函数指针放在一个称为virtual table的虚表
中
,该虚表
中
的第一个指针通常...
C语言
69,372
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章