C++学习记录-面向对象-浅拷贝和深拷贝
C++学习记录-面向对象-浅拷贝和深拷贝
一、浅拷贝
浅拷贝,对对象进行简单的复制粘贴操作,会带来一些问题(和在《赋值运算符重载》中的问题一样)
示例:
1 | //创建一个类 |
1 | chara p1(10); |
此时运行会出错,因为p1,p2的a指针指向的是同一块内存,调用p1,p2的析构函数时导致了内存重复释放
解决方法:利用深拷贝,让p2中的a重新开辟一块内存,存放的值和p1的一样
二、深拷贝
对拷贝构造函数修改如下:
1 | chara(const chara& p) |
利用深拷贝,可以防止重复释放内存
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星辰微光的博客!





