首页  >  文章  >  后端开发  >  如何在 C 中的类初始化器中初始化常量数组?

如何在 C 中的类初始化器中初始化常量数组?

Barbara Streisand
Barbara Streisand原创
2024-11-04 04:27:01294浏览

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