什么时候调用构造函数?

Luv*_*Luv 2 c++ constructor global

假设我们有一个C++类

class X {
    int i;
public:
    X(int y): i(y) {}
};

X r(10);

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以我们有一个全局对象r.我的问题是,在编译时或运行时调用全局或静态对象的构造函数?因为程序的执行从主函数开始.在此之前,所有全局对象都应该初始化.

Luc*_*ore 5

当然不是在编译时.在main进入之前,它在运行时被调用.然后初始化所有全局变量和静态(不包括方法范围静态).

  • @Luv不,不.`main`是入口点,它由运行时调用.但这不是第一件被召唤的东西. (2认同)