您的位置:首页 > 编程语言 > C语言/C++

C++ main函数里的exit与return的区别

2013-03-06 20:53 441 查看
1 #include <iostream>
2 using namespace std;
3 class Temp
4 {
5 public:
6     Temp(){cout<<"Constructor!"<<endl;}
7     ~Temp(){cout<<"Destructor!"<<endl;}
8 };
9 int main()
10 {
11     Temp t;
12     exit(0) ;
13 }

输出:

Constructor!

1 #include
<iostream>

2 using
namespace std;

3 class Temp

4 {

5 public:

6 Temp(){cout<<"Constructor!"<<endl;}

7
~Temp(){cout<<"Destructor!"<<endl;}

8 };

9 int main()

10 {

11 Temp t;

12
return 0;

13 }

输出:Constructor!
Destructor!
return会自动调用对象的析构函数, 而exit不会!!! exit把控制权交给系统,而return将控制权交给调用函数。为什么用return 0 的时候对象能自动调用析构函数,完全是编译器干的。在c main函数中exit和return是相同的;而在c++中,编译器会将类析构函数的汇编代码插入到return前面,但对exit不作任何变动。C++ 中要尽量避免使用exit。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: