关于析构函数!

fanhuaze 2012-03-03 06:07:42
谁能详细的给讲一下析构函数的最重要的知识点,我们刚讲到析构函数!!!
...全文
91 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
义博云天 2012-03-04
  • 打赏
  • 举报
回复
谢谢,我收获了很多,以后多多交流,我的QQ是470665207,没事加一下,经常交流一下
waq12 2012-03-04
  • 打赏
  • 举报
回复
高级一点儿就是如果对象需要作基类供别人继承,那么其析构函数最好是virtual的;
另外对于多线程共享对象,析构交由最后一个使用线程进行调用的情况是比较复杂的,也就是当析构函数遇见多线程。对相关资源的研究会比较有意思,也非常实用。
fzlrpsun 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fanhuaze 的回复:]

太感谢了!!!!
[/Quote]
+1
fanhuaze 2012-03-04
  • 打赏
  • 举报
回复
太感谢了!!!!
ladylin00 2012-03-03
  • 打赏
  • 举报
回复
1.析构函数的书写格式“~ 类名()”(对象的生命周期结束一般都会自动执行析构函数);
2.没有返回值,没有函数类型,也没有函数参数;
3.一个类只能有一个析构函数;
4.析构函数的作用不是删除对象,而是撤销对象所占用的内存空间;
5.调用构造函数和析构函数的顺序:“先构造的后析构,后构造的先析构”。
(了解这些析构就可差不多了)
jixiang1983 2012-03-03
  • 打赏
  • 举报
回复
析构函数名也应与类名相同,只是在函数名前面加一个波浪符~,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数,并且如果自定义了析构函数,编译器在执行时会先调用自定义的析构函数再调用合成的析构函数),它也不进行任何操作。所以许多简单的类中没有用显式的析构函数。
fanhuaze 2012-03-03
  • 打赏
  • 举报
回复
谢谢!!
duke56 2012-03-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 duke56 的回复:]

析构函数是该对象要结束时执行的函数,用来回收之前new等操作的内存空间...

总之就是善后处理!
[/Quote]
"对象要结束"用对象生命周期要结束更为合理...改一下...^_^
duke56 2012-03-03
  • 打赏
  • 举报
回复
析构函数是该对象要结束时执行的函数,用来回收之前new等操作的内存空间...

总之就是善后处理!

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧