#include <bits/stdc++.h>
using namespace std;
class A
{
public:
A()
{
cout<<"A is called";
}
}a;
int main()
{
cout<<"main is called";
}
但是在这里先调用A函数,然后再调用main函数 其背后的机制是什么?
答案 0 :(得分:0)
这是首先创建类型为a
的全局变量A
的过程。在构造函数中,您输出文本A is called
,然后程序以主要功能开始。
因此,您所看到的应该是预期的,并且您从中得到的结果是,必须在执行main()
全局变量之前创建它。
如果要查找全局对象具有的static storage duration
,则可以找到更多信息。
注意:标准中未指定具有静态存储持续时间的对象的创建顺序 ,因此可以观察到任何顺序。