2

C++ のクラスがあるとします。

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

X r(10);

int main() {
    return 0;
}

したがって、グローバル オブジェクト r があります。私の質問は、コンパイル時または実行時に、グローバルまたは静的オブジェクトのコンストラクターが呼び出されたときですか? プログラムの実行はメイン関数から始まるためです。それまでは、すべてのグローバル オブジェクトを初期化する必要があります。

4

1 に答える 1

5

確かにコンパイル時ではありません。実行時に、main入る前に呼び出されます。次に、すべてのグローバルと静的 (メソッド スコープの静的を除く) が初期化されます。

于 2012-06-03T20:47:34.827 に答える