ホームページ  >  記事  >  バックエンド開発  >  C のクラス初期化子で Const 配列を初期化する方法

C のクラス初期化子で Const 配列を初期化する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-04 04:27:01223ブラウズ

How to Initialize a Const Array in a Class Initializer in C  ?

C のクラス初期化子で Const 配列を初期化する

C では、クラスの初期化子リストで const 配列を初期化すると思われる場合があります。関数内変更に対する const キーワードの制限による課題のようなものです。ただし、このタスクは C 11 の導入により可能になりました。

以前は、コンストラクター本体で const 配列を初期化することは実行できませんでした。提供されているコード例のように、これを試みるとエラーが発生しました。これは、初期化後に const 変数を変更できないためです。

しかし、C 11 では、コンストラクターの初期化リスト内で配列を初期化するという解決策が登場しました。この方法では、配列の要素を直接指定できます。

<code class="cpp">struct a {
    const int b[2];
    // other stuff follows

    // Here's the constructor
    a() :
        b{2, 3}
    {
        // other constructor work
    }
};</code>

この例では、配列 b は要素 {2, 3} で初期化されます。この初期化により、b の値はオブジェクトの存続期間を通じて一定のままになります。

クラス a のインスタンスが異なれば、b の値も異なる可能性があることに注意することが重要です。ただし、コンストラクターが実行されると、特定のインスタンスの値は一定のままになります。この動作は、これらの配列を、オブジェクトの存続期間中に変更できる非 const 配列と区別するものです。

以上がC のクラス初期化子で Const 配列を初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。