ホームページ > バックエンド開発 > C++ > C は非静的データ メンバーをどのように初期化しますか?

C は非静的データ メンバーをどのように初期化しますか?

Mary-Kate Olsen
リリース: 2025-01-05 05:44:43
オリジナル
254 人が閲覧しました

How Does C   Initialize Non-Static Data Members?

非静的データ メンバーの初期化順序

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート