C++中析构函数的问题

风尘流月 2011-12-11 04:51:49
为什么析构函数里面不能包含exit()函数。。给个解释。。谢谢。。
...全文
80 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
elegant87 2011-12-11
  • 打赏
  • 举报
回复
exit是退出整个程序

而构造函数只是处理对对象进行处理,而不是退出程序

exit在main函数结束的时调用的
gold_water 2011-12-11
  • 打赏
  • 举报
回复
bsr_nj 2011-12-11
  • 打赏
  • 举报
回复
exit是退出整个程序
cxxer 2011-12-11
  • 打赏
  • 举报
回复
exit
Performs complete C library termination procedures, terminates the process, and exits with the supplied status code.

结束整个程序。
/* EXITER.C: This program prompts the user for a yes
* or no and returns an exit code of 1 if the
* user answers Y or y; otherwise it returns 0. The
* error code could be tested in a batch file.
*/

#include <conio.h>
#include <stdlib.h>

void main( void )
{
int ch;

_cputs( "Yes or no? " );
ch = _getch();
_cputs( "\r\n" );
if( toupper( ch ) == 'Y' )
exit( 1 );
else
exit( 0 );
}
根据参数的不同判断程序是否为正常终止。
zhujian888 2011-12-11
  • 打赏
  • 举报
回复
exit 直接退出进程。
pathuang68 2011-12-11
  • 打赏
  • 举报
回复
exit退出了程序,那么程序所占用的资源会自然被操作系统回收。

问题是,在析构函数里面回收资源,可以让程序在不退出运行的情况下回收资源。试想想,如果一个程序中有10个类,每个类中都写了exit,那么基本上可以说这个程序很难正确地工作,也就是说事情还没做好,程序就退出了。
风尘流月 2011-12-11
  • 打赏
  • 举报
回复
哦,知道了,谢谢啦!
[Quote=引用 2 楼 seujh2010 的回复:]
exit 会退出整个程序

由于析构会回收资源


程序退出了。。。资源没有回收,,是很糟糕的方式。。

比如:
[/Quote]
seujh2010 2011-12-11
  • 打赏
  • 举报
回复
exit 会退出整个程序

由于析构会回收资源


程序退出了。。。资源没有回收,,是很糟糕的方式。。

比如:

机智的呆呆 2011-12-11
  • 打赏
  • 举报
回复
lz知道exit的作用吗?

64,281

社区成员

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

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