C++初阶Day7

析构函数、拷贝构造函数

析构函数:

1.~ 类名()
2.无参数,无返回值;不可重载
3.若无显示定义析构函数,系统会自动生成默认析构函数
4.对象生命周期结束时,C++编译系统自动调用析构函数
5.作用:默认的析构函数对自定义类型成员调用它的析构函数
析构函数完成类的一些资源清理工作,而不是完成对象的销毁

拷贝构造函数:

1.是构造函数的重载
2.参数只有一个且必须是引用传参(传值会引发无穷递归调用),这是语法要求。
为什么必须引用传参:
调用拷贝构造函数的场景:
①一个对象实例化另一个对象;
②函数的参数类型为类类型,给该函数传参时;
③返回值类型为类类型。
若拷贝构造函数的参数类型为类类型,调用拷贝构造函数传参时会产生给临时对象赋值,给临时对象赋值又会调用拷贝构造函数;调用拷贝构造函数传参时会产生给临时对象赋值,给临时对象赋值又会调用拷贝构造函数…循环,引起无穷递归
若拷贝构造函数的参数类型为类的引用类型,调用拷贝构造函数传参时不会产生给临时对象赋值(即传参时不会调用拷贝构造函数),不会引起递归
3.若未进行显示定义,系统会自动生成默认的拷贝构造函数,并按成员顺序拷贝

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值