拷贝构造函数(讲解以类对象为例)

1. 浅拷贝:副本对象在copy原对象的时候只拷贝属于原对象的资源的“地址”,即拷贝发生后它们拥有同一片内存,

  所以副本作为一个对象,与原对象一样,在执行完后会释放自己的资源,此时就会对同一块内存释放两次,以致出错。

  例如, 主函数里有调用语句: 成员函数名(某对象)//对象作参数

      被调函数里有语句:  return (某对象) //对象作返回值 

      函数里有语句:   类名 对象2=对象1(已用构造函数初始化) //用对象1初始化对象2,且对象2没有资源空间         

2. 深拷贝:拷贝前副本对象已有可以存放资源的内存,只是将原对象的资源拷贝到副本所在的内存。

 

3. 为什么用拷贝构造函数?

  程序中有浅拷贝发生时,用拷贝构造函数来实现“深拷贝”,使得副本和原对象拥有各自的内存资源,释放时可以独立调用各自的析构函数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值