首頁  >  文章  >  後端開發  >  如何在 C 中的類別初始化器中初始化常數數組?

如何在 C 中的類別初始化器中初始化常數數組?

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 值。但是,一旦建構函式執行完畢,特定實例的值將保持不變。這種行為是這些數組與非常量數組的區別,非常量數組可以在物件的生命週期內進行修改。

以上是如何在 C 中的類別初始化器中初始化常數數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn