为了在C ++中使用静态数据成员,我现在有类似的东西:
// HEADER FILE .h
class MyClass {
private :
static double myvariable;
};
// CPP FILE .cpp
double MyClass::myvariable = 0;
但如果现在我有:
// HEADER FILE .h
class MyClass {
private :
static double myarray[1000];
};
如何初始化它?
由于
答案 0 :(得分:12)
与初始化普通数组相同:
double MyClass::myarray[1000] = { 1.1, 2.2, 3.3 };
缺少的元素将设置为零。
答案 1 :(得分:3)
试试这个,
class MyClass {
private :
static double myarray[1000];
};
double MyClass::myarray[]={11,22};
答案 2 :(得分:1)
您可以添加一个非pod静态成员,用于从其构造函数初始化myvariable
如果愿意的话,这有点像'RIAA-by-proxy'。
谨防静态初始化Fiasco
答案 3 :(得分:1)
为什么不这样做 - 将数组更改为向量。使用另一个类是vector的超类,并在其构造函数中初始化数组(vector)。然后,您可以根据需要将其设置为复杂,并将其视为数组>