码迷,mamicode.com
首页 > 编程语言 > 详细

C++-------深拷贝

时间:2019-05-26 00:19:59      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:指针   构造函数   构造   一个   c++   使用   --   ++   存在   

test t2(t1);
当出现有类似拷贝时,若类中数据成员涉及指针,
则应在类中显示定义深拷贝函数,即在拷贝函数中为指针开辟空间再进行拷贝赋值
若只是使用默认的拷贝构造函数的话,
因为此时t2的指针与t1的指针同时指向同一个地址,而当t2析构时,此地址空间被释放,再到t1析构时,已经不存在那个公共的地址了,
所以会出现错误。
解决办法是必须提供深拷贝构造函数,即在拷贝函数中为指针开辟空间再进行拷贝赋值,这时当t2析构时,只是析构自己指针所指向的地址空间,
与t1地址空间不同,但内容都相同,因为是深拷贝。

C++-------深拷贝

标签:指针   构造函数   构造   一个   c++   使用   --   ++   存在   

原文地址:https://www.cnblogs.com/god-for-speed/p/10924488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!