假設我們使用C有一個類++何時調用構造函數?
class X {
int i;
public:
X(int y): i(y) {}
};
X r(10);
int main() {
return 0;
}
所以我們有一個全局對象河 我的問題是,當在編譯時或運行時調用全局或靜態對象的構造函數嗎?因爲程序的執行從主函數開始。 到那時,所有的全局對象都應該被初始化。
假設我們使用C有一個類++何時調用構造函數?
class X {
int i;
public:
X(int y): i(y) {}
};
X r(10);
int main() {
return 0;
}
所以我們有一個全局對象河 我的問題是,當在編譯時或運行時調用全局或靜態對象的構造函數嗎?因爲程序的執行從主函數開始。 到那時,所有的全局對象都應該被初始化。
當然不在編譯時。它在運行時調用,在main
進入之前。然後初始化所有全局變量和靜態變量(不包括方法範圍的靜態變量)。
但是執行從main()開始,那麼在進入main之前如何初始化呢? – Luv
@Luv不,它不。 'main'是入口點,它由運行時調用。但這不是第一個被調用的東西。 –
在構造函數中放置一個斷點,找出一個斷點。 – IronMensan