#include
#include

class CMyClass
{
public:
CMyClass() { printf(" Constructor\n"); }
~CMyClass() { printf(" Destructor\n"); }
};
CMyClass theObject1;
int main()
{
CMyClass theObject;
::ExitThread(0);
//exit(0);

// 在这个函数的结尾,编译器会自动添加一些必要的代码,
// 来调用theObject的析构函数
return 0;

}

exit(0):可以看到只析构了一个对象,而另外一个未被析构,其实没被析构的对象是局部对象,前面提到exit函数主要任务就是负责析构全局对象和变。

ExitProcess: 局部对象和全局对象都没被析构,因为调用了ExitProcess进程直接结束,而没有调用启动函数中的exit函数,所以全局对象也没被析构。

TerminateProcess: 函数的实际作用跟ExitProcess函数差不多,只不过,此函数可用来终止当前进程之外的另外一个其它进程。

标签: none

添加新评论