讲述下C++下深拷贝和浅拷贝
来源:互联网 发布:计算机病毒 知乎 编辑:程序博客网 时间:2024/06/08 15:37
某些情况下我们需要将一个对象赋给另一个对象,其中就有一些值得注意的点。
浅拷贝:
在没有进行运算符的重载时,一般情况下我们定义一个A a(1,2,3);A b;这两个对象,我们会有 b = a; 这就是对象之间的拷贝,也就是会出现深拷贝和浅拷贝,以及一些错误。首先,b = a是一个浅拷贝过程就是将一些数值进行赋值操作。这就出现一个问题,如果类中含有指针,浅拷贝就会出现问题当a对象析构时,则其指针所指向的空间也就释放,此时b对象中的数据中的指针指向了已经释放了的空间,这样的指针是不合法的,会对其他程序的数据产生破坏。为了防止这类事情的发生,我们就采用运算符重载,来实现对象之间的深拷贝。。理解了这一点,我们就知道,需要同时为a,b两个对象分配同样大小的内存空间,将所需要的数据全部拷贝到自己的空间。对象的数据中的指针指向自己数据空间肯定是合法的。
至于运算符的重载,这个很好理解,就不一一解释了。。。。所想的就是这些,,睡觉了。大家晚安。
- 讲述下C++下深拷贝和浅拷贝
- 讲述下C++下深拷贝和浅拷贝
- C++下深拷贝和浅拷贝 .
- Objective-C之 深拷贝和浅拷贝、copy和mutableCopy(可以验证下)
- ios下的深拷贝和浅拷贝概念
- Object-c 深拷贝和浅拷贝
- [Objective-C]浅拷贝和深拷贝
- 【C++】深拷贝和浅拷贝
- 【C++】深拷贝和浅拷贝
- Objective-C浅拷贝和深拷贝
- 【C++】深拷贝和浅拷贝解析
- C中的深拷贝和浅拷贝
- [c++]深拷贝和浅拷贝
- 【C++】深拷贝、浅拷贝和写时拷贝
- object c的浅拷贝(地址拷贝)和深拷贝(对象拷贝)
- Objective-c下的深拷贝、浅拷贝以及NSCopying协议
- 浅拷贝和深拷贝
- 浅拷贝和深拷贝
- ORACLE 创建视图时,提示用户权限不足
- 我的Android进阶之旅------>Android ListView优化详解
- Java对象及其引用
- ubuntu samba服务器共享设置
- linux shell 笔记---变量
- 讲述下C++下深拷贝和浅拷贝
- 我的Android进阶之旅------>Android ListView 应用解析(使用ArrayAdapter,SimpleAdapter和SimpleCursorAdapter适配器)
- javascript 类中函数调用的that模式,避免this的丢失
- 笔记-数组类型
- Inventory Transactions Manager
- CREATESTRUCT与WNDCLASS的关系
- CREATESTRUCT-style
- 关于ES、PES、PS以及TS码流
- 0026算法笔记——【贪心算法】多机调度问题