C++析构函数知识点小结



析构函数是一种特殊的成员函数  他的作用于构造函数相反 当生命期结束时会自动执行析构函数

特点:
1、如果一个函数中定义了一个对象(自动局部对象)当这个函数被调用结束时,对象应该释放 在对象释放前自动自行析构函数

2、static局部对象在函数调用结束时对象并不释放 因此不会调用析构函数  只有在main函数结束或者exit函数结束程序是 才能调用static局部对象的析构函数

3、如果定义了一个全局变量 则在程序的流程离开其作用域时(exit)    调用全局变量的析构函数

4、如果new运算符动态建立了一个对象  当delete运算符释放该对象时  先调用该对象的析构函数

作用:

析构函数的作用并不是删除对象  而是撤销对象占用的内存之前完成的一些清理工作  使这部分对象可以被程序分配给的新的对象使用 

实际上 析构函数的作用并不仅限于释放资源方面  还可以被用来执行“用户希望最后一次使用对象之后执行的任何操作”,例如输入输出有关信息 这里的用户是指类的设计者 ,因为 ,析构函数实在声明类的时候定义的 也就是说 析构函数可以完成类的设计者所指定的任何操作 

一般情况  类的设计者应当在声明类的同时 定义析构函数 一指定如何完成清理工作  C++会在你不定义析构函数的时候自动生成一个析构函数  


什么时候用析构函数 ??

1、在全局反违中定义的对象  他的构造函数文件中的所有函数执行前调用  如果一个程序有多个文件 而不同的文件中都定义了全局变量  则这些对象的构造函数执行顺序都不确定时 (看倒叙)

2、如果定义的是局部自动对象 则在建立对象时调用构造函数  如果函数被多次调用  则在每次建立对象时都要调用构造函数  在函数调用结束、对象释放时  先调用析构函数

3、如果在函数中定义静态局部对象 则只在程序第一次调用此函数建立对象时调用构造函数一次  在调用结束时对象并不释放  不调用析构函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值