读书人

VS2012的C++编译器没调用全局变量的析

发布时间: 2013-05-02 09:39:29 作者: rapoo

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()

读书人网 >C++

热点推荐