非静的データ メンバーの初期化順序
C では、オブジェクトを初期化するときの非静的データ メンバーの初期化順序は懸念事項です。この順序を理解するには、C 標準の関連セクションを参照することが重要です。
C 標準の 12.6.2 によれば、非静的データ メンバーはクラス定義に出現する順序で初期化されます。 。これは、クラス本体内でメンバー初期化子リストが出現する順序には関係ありません。
次の例を考えてみましょう:
class A {}; class B {}; class X { A a; B b; };
クラス X では、初期化の順序は A、次に B です。これは、クラス定義で A が B の前に宣言されているためです。コンストラクター内のメンバー初期化子リストの順序が異なっていても問題ありません。
この初期化順序により、基本クラスとメンバーのサブオブジェクトが初期化の逆の順序で破棄されることが保証されます。したがって、上記の例では、B は A より前に破棄されます。
以上がC は非静的データ メンバーをどのように初期化しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。