在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中文網其他相關文章!