C:数组的构造函数初始化器
在 C 中,初始化对象数组可能是一个挑战。对于非数组场景,可以使用构造函数语法,如下所示:
struct Foo { Foo(int x) { /* ... */ } }; struct Bar { Foo foo; Bar() : foo(4) {} };
但是,在处理数组时会出现问题:
struct Foo { Foo(int x) { /* ... */ } }; struct Baz { Foo foo[3]; // Incorrect syntax Baz() : foo[0](4), foo[1](5), foo[2](6) {} };
不幸的是,在 C 中(更早之前)该语言的最新迭代),没有直接的方法来使用构造函数初始化数组成员。该限制源于数组成员默认构造函数的要求,这些默认构造函数在数组初始化期间自动调用。之后,构造函数中的任何其他初始化都会继续进行。对于缺乏 STL 功能的嵌入式系统,一种解决方法涉及默认构造函数以及可在构造后调用的显式 init() 方法,从而无需初始化程序。
以上是如何在 C 中使用构造函数初始化对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!