首页 > 编程语言 > 详细

C++浅拷贝和深拷贝问题(一)(重要!)

时间:2021-09-04 05:38:29      阅读:28      评论:0      收藏:0      [点我收藏+]

首先明确什么是浅拷贝:一个类至少提供四种方法1

1.默认构造

2.析构函数

3.拷贝构造

4.赋值运算符operator=

这里的3拷贝构造和4operator=方法,就是直接用“=”号来对数据赋值,也就是浅拷贝

但是如果数据是开辟在堆区(new)那么如果是单纯的用等号来赋值的话,在析构函数中释放堆区数据的时候会报错,为什么呢?

下面是具体错误的代码:

技术分享图片

 

 技术分享图片

 

 

下面是原理图

技术分享图片

 

 

 解决代码(重写拷贝构造):

技术分享图片

 

 解决原理图

技术分享图片

 

C++浅拷贝和深拷贝问题(一)(重要!)

原文:https://www.cnblogs.com/1930110419lx/p/15221271.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!