一个全局对象的析构函数问题,在不同的编译器中表现不一样?
licki 2005-07-05 11:39:19 先看下面这个程序:
#include <iostream>
using namespace std;
struct Foo
{
Foo(){ cout << "before main()\n"; }
~Foo(){ cout << "after main()\n"; }
};
Foo smallFoo;
int main(int argc,char* argv[])
{
std::cout << "Hello, world!\n";
return 0;
}
为什么在VC6下,执行结果是:
before main
Hello, world !
Press any key to continue
而在Dev-C++下,执行结果是:
before main
Hello, world !
after main
为什么在VC6中Foo的析构函数没有被调用。
而在改成:
~Foo(){ printf("after main()\n"); }
则两个的结果是一样的。
有点不明白。。。