在 C++03 中,您只能在定义数组时使用该初始化:
double list[3][3][3] = {{{0,0,0},{0,0,0},{0,0,0}},
{{0,0,0},{0,0,0},{0,0,0}},
{{0,0,0},{0,0,0},{0,0,0}}};
编译器警告说,根据当前标准,它不应该接受您的代码,即使它能够通过应用即将推出的标准规则来处理它,其中{...}
被称为外部初始化器.
在这种特殊情况下,数组是一个成员,并且您想将其初始化为全零,您可以使用值初始化在 C++0x 中:
struct test {
double list[3][3][3];
test() : list()
{}
};
对于 POD 类型的成员(这是一个数组double
是),上面的语法(list()
) 在初始化列表中意味着该成员是值初始化这实际上意味着所有值都将设置为 0