C ++:初始化静态成员大数组

时间:2011-08-26 13:58:30

标签: c++ static

为了在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];
};

如何初始化它?

由于

4 个答案:

答案 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)。然后,您可以根据需要将其设置为复杂,并将其视为数组>