我的大脑抽筋了..。如何在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
关键字+构造函数的灵活性弄坏的一种情况。)
https://stackoverflow.com/questions/2409819
复制相似问题