我有大脑痉挛...如何在C++中正确初始化一组对象?
非数组示例:
struct Foo { Foo(int x) { /* ... */ } };
struct Bar {
Foo foo;
Bar() : foo(4) {}
};
Run Code Online (Sandbox Code Playgroud)
数组示例:
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) {}
};
Run Code Online (Sandbox Code Playgroud)
编辑:狂野和疯狂的解决方法的想法值得赞赏,但在我的情况下他们不会帮助我.我正在开发一个嵌入式处理器,其中std :: vector和其他STL结构不可用,显而易见的解决方法是创建一个默认构造函数并使用一个init()可以在构造时间之后调用的显式方法,这样我就不会根本不得不使用初始化器.(这是我被Java的final关键字+灵活性与构造函数所破坏的情况之一.)