C 数组构造函数初始化
在 C 中初始化对象数组可能具有挑战性,特别是与非数组示例相比。考虑以下非数组初始化:
struct Foo { Foo(int x) { /* ... */ } }; struct Bar { Foo foo; Bar() : foo(4) {} };
在此示例中,Bar 结构中的 Foo 对象使用构造函数中的初始值设定项列表进行了正确初始化。但是,初始化对象数组需要不同的方法。
struct Foo { Foo(int x) { /* ... */ } }; struct Baz { Foo foo[3]; Baz() : foo[0](4), foo[1](5), foo[2](6) {} };
上面示例中显示的错误语法凸显了单独初始化数组元素的挑战。
解决方案
不幸的是,根据提供的答案,没有标准方法可以在构造函数中初始化 C 中的对象数组。相反,必须对数组成员使用默认构造函数,并且可以在构造时间后执行任何必要的初始化。
此限制归因于所使用的嵌入式处理器的限制,该处理器缺乏对现代 C 的支持标准。作为解决方法,作者建议创建一个默认构造函数和一个显式 init() 方法来在构造后执行初始化。虽然这种方法可能并不理想,但它克服了数组缺乏构造函数初始值设定项的问题。
以上是如何在 C 构造函数中初始化对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!