在建構子初始值設定項清單中初始化陣列成員
無法使用成員初始值設定項清單在建構子中初始化數組會引發有關基本規則和可能的問題
C 03標準與聚合初始化
C 03 標準禁止在成員初始值設定項清單中對聚合類型(包括陣列)使用直接初始化。直接初始化是指直接使用帶有括號的建構函數,如提供的程式碼片段所示。
Boost::array 作為解決方案
另一種方法是使用封裝陣列的結構體。透過在結構中定義建構函數,您可以在建立物件時初始化數組。這與 Boost::array 函式庫採用的方法類似。
C 11 列表初始化
C 11 引入了列表初始化,它允許直接初始化聚合,包括數組,在成員初始值設定列表中。但是,問題中提到的語法不正確。要使用列表初始化,必須將陣列元素括在大括號內:
class C { public: C() : arr{1, 2, 3} {} };
此語法在建構函式中正確初始化 arr 陣列。
以上是C 建構函式可以直接在成員初始化列表中初始化陣列嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!