程序里面全局变量的构造函数和析构函数什么时候调用啊?
时间:2011-12-15
来源:互联网
如题:程序里面全局变量的构造函数和析构函数什么时候调用啊?
声明一个类,然后定义全局变量,这个类得构造和析构是什么时候被调用啊?最好能有个demo程序验证一下。求高人指点,谢谢
声明一个类,然后定义全局变量,这个类得构造和析构是什么时候被调用啊?最好能有个demo程序验证一下。求高人指点,谢谢
作者: lida2003 发布时间: 2011-12-15
操作系统加载程序-》mainCRTStartup(这个时候初始化全局对象,调用构造) -> main 或winmain -> 返回 mainCRTStartup(返回后,crt调用exit,exit函数里寻找析构函数,然后调用) ->ExitProcess
这就是整个过程
这就是整个过程
作者: zhujian888 发布时间: 2011-12-15
自己写个程序,设好断点,调试一次就全知道了。 比在这里问快多了
作者: SophiaNM 发布时间: 2011-12-15
C/C++ code
#include <iostream> using namespace std; double a; class BeforeMain { public: BeforeMain(int index) { cout<<"BeforeMain Constructor -->"<<index<<endl; } ~BeforeMain() { cout<<"BeforeMain Destructor"<<endl; } }; BeforeMain b(1); void main() { cout<<"enter main"<<endl; } double x[3]={1.1,2.0,3.9}; BeforeMain c(2); /*result : BeforeMain Constructor -->1 BeforeMain Constructor -->2 enter main */
作者: et214721856 发布时间: 2011-12-15
全局变量存储在全局区,在程序结束的时候释放内存,所以在程序结束时候调用析构函数。全局变量也是一段代码,所以程序会从上往下执行,应该是在执行的时候调用构造函数。
作者: gyzx090223 发布时间: 2011-12-15
引用 1 楼 zhujian888 的回复:
操作系统加载程序-》mainCRTStartup(这个时候初始化全局对象,调用构造) -> main 或winmain -> 返回 mainCRTStartup(返回后,crt调用exit,exit函数里寻找析构函数,然后调用) ->ExitProcess
这就是整个过程
操作系统加载程序-》mainCRTStartup(这个时候初始化全局对象,调用构造) -> main 或winmain -> 返回 mainCRTStartup(返回后,crt调用exit,exit函数里寻找析构函数,然后调用) ->ExitProcess
这就是整个过程
正解!
作者: logicouter 发布时间: 2011-12-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28