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