在VS2012上将数据成员数组元素初始化为零?

时间:2013-10-11 22:00:21

标签: c++ c arrays visual-studio visual-studio-2012

我有一个Y类,它包含一个100 X对象的数组。

class Y{
    unsigned int x_array[100];
};

我需要初始化这个数组,以便所有元素都为零。是否可以在Visual Studio中执行此操作,如果不能,我该怎么办?如果我这样做:

unsigned int x_array[100] = {0}; 

我收到编译错误,说不允许数据成员初始化。

(英特尔C ++编译器v13)

1 个答案:

答案 0 :(得分:4)

您尝试做的事情仅在C ++ 11之后可用,在C ++ 03中应该如下:

class Y{
public:
    Y() : x_array() { }
    unsigned int x_array[100];
};

另请考虑使用std::vector<unsigned int>

#include <vector>

class Y{
public:
    Y() : x(std::vector<unsigned int>(100, 0)) { }
    std::vector<unsigned int> x;
};