我有一个 Y 类,其中包含一个大小为 100 个 X 对象的数组。
class Y{
unsigned int x_array[100];
};
我需要初始化这个数组,使所有元素都为零。这可以在 Visual Studio 中做吗?如果不能,我该怎么办?如果我做:
unsigned int x_array[100] = {0};
我收到一个编译错误,说不允许数据成员初始化。
(英特尔 C++ 编译器 v13)
我有一个 Y 类,其中包含一个大小为 100 个 X 对象的数组。
class Y{
unsigned int x_array[100];
};
我需要初始化这个数组,使所有元素都为零。这可以在 Visual Studio 中做吗?如果不能,我该怎么办?如果我做:
unsigned int x_array[100] = {0};
我收到一个编译错误,说不允许数据成员初始化。
(英特尔 C++ 编译器 v13)
What you are trying to do is available only since C++11, in C++03 the following should do:
class Y{
public:
Y() : x_array() { }
unsigned int x_array[100];
};
Also consider using std::vector<unsigned int>
instead:
#include <vector>
class Y{
public:
Y() : x(std::vector<unsigned int>(100, 0)) { }
std::vector<unsigned int> x;
};