大局的类对象初始化可不可以在main()中

全局的类对象初始化可不可以在main()中?
全局类对象是在程序进入main()之前的startup()函数中初始化

我之前认为的原因是,类在定义对象的时候,编译器会自动加上调用该类构造函数的语句,因为这个对象定义在全局范围内,没办法在全局范围内加 调用构造函数的语句,所以要将调用构造函数的语句放在其他地方,这就是为什么全局变量要在进入main()之前初始化好的原因。

但是后来想了下,发现好像有点不妥,如果编译器把调用这个构造函数的语句加在 main()函数最开头的位置,可不可以呢?



------解决方案--------------------
可以
------解决方案--------------------
你定义全局对象的时候它就构造了。
------解决方案--------------------
这个你可以写一个简单的例子程序啊:

#include <iostream>
using namespace std;

class AA
{
public:
AA()
{
cout<<"This is AA"<<endl;
}
};

AA a;

int _tmain(int argc, _TCHAR* argv[])
{
cout<<"This is main"<<endl;
return 0;
}

输出结果:
This is AA
This is main


------解决方案--------------------
可以
------解决方案--------------------
没有什么具体的意义,对象在构造的时候就会调用构造函数,不是都在main里面构造的!
------解决方案--------------------
不可以,
------解决方案--------------------
LZ,我最近正好在学这方面的内容,你说的问题我也学习到了。请看这篇:http://blog.csdn.net/chain2012/archive/2010/03/15/5382956.aspx


------解决方案--------------------
探讨

引用:

LZ,我最近正好在学这方面的内容,你说的问题我也学习到了。请看这篇:http://blog.csdn.net/chain2012/archive/2010/03/15/5382956.aspx


呃。。我确实是在看这部分的时候才有这个疑问的。。但是这个里面好像没有解释我的疑问呃。- -'''
我是想弄清楚为什么一定得在程序执行之前就要……

------解决方案--------------------
探讨

你定义全局对象的时候它就构造了。