最佳答案
我有一个大脑痉挛... 我如何在 C + + 中正确地初始化一个对象数组?
非数组的例子:
struct Foo { Foo(int x) { /* ... */ } };
struct Bar {
Foo foo;
Bar() : foo(4) {}
};
数组例子:
struct Foo { Foo(int x) { /* ... */ } };
struct Baz {
Foo foo[3];
// ??? I know the following syntax is wrong, but what's correct?
Baz() : foo[0](4), foo[1](5), foo[2](6) {}
};
编辑: 疯狂和疯狂的变通方法的想法是赞赏的,但他们不会帮助我在我的情况下。我正在开发一个嵌入式处理器,其中 std: : Vector 和其他 STL 结构都不可用,最明显的解决方案是创建一个缺省构造函数,并有一个可以在构建时调用的显式 init()
方法,这样我就根本不需要使用初始化器了。(这是我被 Java 的 final
关键字 + 构造函数的灵活性所破坏的情况之一。)