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



我有一个Y类,其中包含一个大小为100 X对象的数组。

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

我需要初始化这个数组,以便所有元素都为零。这在Visual Studio中可以做到吗?如果不能,我能做什么?如果我这样做:

unsigned int x_array[100] = {0}; 

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

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

您尝试执行的操作仅在 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;
};

最新更新