C++ 言語定義は、C++ プログラムの main 関数を実行する前に、そのプログラムに組み込まれたすべてのファイルから、コンストラクターを持つすべてのオブジェクトが適切に構成されるように指定します。言語定義は、ファイル内 のこれらのオブジェクトの初期化順序 (これは、そのオブジェクトが宣言された順序に従います) を指定しますが、複数のファイルやライブラリー間 のオブジェクトの初期化順序は指定しません。プログラム内のさまざまなファイルやライブラリーで宣言された静的オブジェクトの初期化順序を指定することもできます。
オブジェクトの初期化順序を指定するには、オブジェクトに相対的な優先順位 番号を割り当てます。ファイル全体や、ファイル内のオブジェクトの優先順位を指定できるメカニズムについては、
オブジェクトへの優先順位の割り当てで説明します。複数のモジュール間でオブジェクトの初期化順序を制御できるメカニズムについては、
ライブラリー間のオブジェクト初期化の順序で説明します。