首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-05-02 
VS2012的C++编译器没有调用全局变量的析构函数[解决办法]#include iostreamusing namespace std class

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

热点排行