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

Vin*_*ent 9 c++ static

为了在C++中使用静态数据成员,我目前有类似的东西:

// HEADER FILE .h
class MyClass {
private :
    static double myvariable;
};

// CPP FILE .cpp
double MyClass::myvariable = 0;
Run Code Online (Sandbox Code Playgroud)

但如果现在我有:

// HEADER FILE .h
class MyClass {
private :
    static double myarray[1000];
};
Run Code Online (Sandbox Code Playgroud)

我该如何初始化它?

谢谢

Ker*_* SB 13

与初始化普通数组相同:

double MyClass::myarray[1000] = { 1.1, 2.2, 3.3 };
Run Code Online (Sandbox Code Playgroud)

缺失元素将设置为零.

  • :/似乎是最合适的方式.它是一个大型数组,初始化列表将是乏味的,但它是保证它被适当初始化的最直接的方式.此外,引用构造函数的其他答案也存在问题,因为它们需要在静态数据成员处于已知状态之前创建对象的实例. (2认同)
  • 我仍然在努力理解为什么这个被贬低 - 现在两次.考虑到大型c风格数组的OP问题,有什么更好的方法可以将其正确地初始化为静态类变量.我认为在构造函数中这样做是不合适的(上面给出的理由). (2认同)