VS2012的C++编译器没有调用全局变量的析构函数
[解决办法]
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass() {cout << "MyClass()" << endl;};
~MyClass() {cout << "~MyClass()" << endl;};
protected:
int _a;
};
MyClass g_MyClass;
int main()
{
return 0;
}
用gcc编译测试会调用析构函数:
MyClass()
~MyClass()
[解决办法]
vs2010 也能显示.
[解决办法]
全局变量析构发生在main函数返回之后
[解决办法]
VS 高版本对程序的优化引起的,这个全局的类变量,在整个主函数中没有被引用过,所以它没有被构造也无析构,等无没有定义这个变量,被优化和谐了,要主函数中对这个类进行一个访问,那么它应当不被优化和谐了,我猜的,是否属实需要验证
[解决办法]
VC71中还有构造和析构的
[解决办法]
表示用VS2010有显示
~MyClass()