加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

关于C++下深拷贝和浅拷贝的认识

发布时间:2021-11-22 11:41:39 所属栏目:教程 来源:互联网
导读:某些情况下我们需要将一个对象赋给另一个对象,其中就有一些值得注意的点。 浅拷贝: 在没有进行运算符的重载时,一般情况下我们定义一个A a(1,2,3);A b;这两个对象,我们会有 b = a; 这就是对象之间的拷贝,也就是会出现深拷贝和浅拷贝,以及一些错误。首先

某些情况下我们需要将一个对象赋给另一个对象,其中就有一些值得注意的点。
 
浅拷贝:
 
在没有进行运算符的重载时,一般情况下我们定义一个A a(1,2,3);A b;这两个对象,我们会有 b = a; 这就是对象之间的拷贝,也就是会出现深拷贝和浅拷贝,以及一些错误。首先,b = a是一个浅拷贝过程就是将一些数值进行赋值操作。这就出现一个问题,如果类中含有指针,浅拷贝就会出现问题
 
关于C++下深拷贝和浅拷贝的理解
 
当a对象析构时,则其指针所指向的空间也就释放,此时b对象中的数据中的指针指向了已经释放了的空间,这样的指针是不合法的,会对其他程序的数据产生破坏。为了防止这类事情的发生,我们就采用运算符重载,来实现对象之间的深拷贝。。理解了这一点,我们就知道,需要同时为a,b两个对象分配同样大小的内存空间,将所需要的数据全部拷贝到自己的空间。对象的数据中的指针指向自己数据空间肯定是合法的。
 
关于C++下深拷贝和浅拷贝的理解
 
至于运算符的重载,这个很好理解,就不一一解释了。所想的就是这些。
 
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读