在构造函数中初始化 Const 字段
考虑这样的场景:C 类 Bar 需要 Foo 指针,并打算在其整个生命周期中保持它不可变。应该如何实现?
最初,在构造函数中初始化 const 字段似乎很简单,如下所示:
<code class="cpp">class Foo; class Bar { public: Foo * const foo; Bar(Foo* foo) { this->foo = foo; } }; class Foo { public: int a; };</code>
但是,这种方法无法编译。解决方案在于使用初始值设定项列表:
<code class="cpp">Bar(Foo* _foo) : foo(_foo) { }</code>
请注意,传入变量已重命名以防止命名冲突。此初始化列表在构造函数的最开始初始化 const 字段,确保其不变性。
以上是如何在 C 构造函数中初始化 `const` 字段?的详细内容。更多信息请关注PHP中文网其他相关文章!