C++ 深拷贝与浅拷贝
来源:互联网 发布:痔疮手术 知乎 编辑:程序博客网 时间:2024/06/05 08:52
浅拷贝:没有自定义的拷贝构造函数,使用的是C++编译器自动产生的一个默认构造函数,默认的构造函数采用的是“位拷贝”,也就是浅拷贝,并不是“值拷贝”,也就是深拷贝。定义一个类 A,有A obj1; 不自定义拷贝构造函数时,即 A obj2(obj1) 或 A obj2 = obj1; 浅拷贝使得obj1和obj2指向同一块内存,调用析构函数时,要对同一个资源析构2次,即对同一块内存释放2次,这是错误的,如果对象中存在动态成员,即指针,在析构时会造成内存泄露,并且由于指向同一块内存,任何一方的变动都会影响到另一方。
深拷贝:防止编译器形成默认的构造函数,自定义拷贝构造函数,拷贝构造函数为成员变量申请了新的内存空间,obj1和obj2不再指向同一块内存。
我们来看下具体的简单实例吧。
0 0
- c++-深拷贝与浅拷贝
- 【c++】浅拷贝与深拷贝
- Objective-C 深拷贝与浅拷贝
- [C++]深拷贝与浅拷贝
- C语言拾遗:位拷贝与值拷贝,浅拷贝与深拷贝
- C语言拾遗:位拷贝与值拷贝,浅拷贝与深拷贝
- 深拷贝与浅拷贝
- 深拷贝与浅拷贝
- 深拷贝与浅拷贝
- “浅拷贝”与“深拷贝”
- 深拷贝与浅拷贝
- 深拷贝与浅拷贝
- 深拷贝与浅拷贝
- 浅拷贝与深拷贝
- 深拷贝与浅拷贝
- 深拷贝与浅拷贝
- “浅拷贝”与“深拷贝”
- 深拷贝与浅拷贝
- C++学习日记9——vector用法
- html 改变placeholder颜色
- FZOJ 1026: [SCOI2009]windy数(数位dp)
- Quartz的糟糕设计
- Ugly Number(丑数)
- C++ 深拷贝与浅拷贝
- 浅谈TCP/IP协议栈(九)初始TCP协议
- 八大排序--堆排序
- 上台阶
- 集合练一
- oracle命令提示符
- 【散文】一帘幽梦雨,冰冷三秋天
- Python下访问MYSQL的方法总结
- windows 批量改名小工具