測試目的如題:
爲此自己親自寫了一個小demo:
#include <iostream>
using namespace std;
class myApp
{
public:
myApp()
{
cout << "myapp constructor" << endl;
}
~myApp()
{
}
};
myApp theApp;
int main()
{
cout << "enter main" << endl;
return 0;
}
//測試目的:
//對於全局函數,是在入口函數之前初始化,還是在入口函數之後初始化...
//結論:
下面看看我們的控制檯輸出 :
全局對象再進入到main之前就已經完成了自己的初始化,爲什麼呢?
爲什麼呢?
肯定是必須在main之前初始化的,因爲main也是一個函數,在調用main之前,會有專門的啓動代碼,啓動代碼負責加載對應的啓動運行庫,包括我們全局對象的初始化,靜態對象的初始化等等,這些完成之後纔會調用main函數.
不然就沒位置對,這些全局對象進行初始化了,在main函數中都是運行時初始化或者調用代碼.