此问题与帖子here有关。是否可以在函数调用或构造函数调用中初始化数组?例如,类foo的构造函数需要一个大小为3的数组,所以我想调用foo({0,0,0})。我试过这个,但它不起作用。我希望能够在其他对象的构造函数初始化列表中初始化foo类型的对象,或者在不首先创建单独的数组的情况下初始化foo。这可能吗?
答案 0 :(得分:5)
不符合现行标准。它可以在C ++ 11
中实现在gcc中你可以使用强制转换强制创建一个时态,但它不是标准的c ++(C99):
typedef int array[2];
void foo( array ) {} // Note: the actual signature is: void foo( int * )
int main() {
foo( (array){ 1, 2 } );
}
答案 1 :(得分:0)
如果您的设计允许,您可以考虑将数据包装在类中,并在默认构造函数中初始化为0(或您选择的任何值)