什么时候调用构造函数?

时间:2012-06-03 20:44:50

标签: c++ constructor global

假设我们有一个C ++类

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

X r(10);

int main() {
    return 0;
}

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

1 个答案:

答案 0 :(得分:5)

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