C++:static一次初始化一个数组成员,成员

bit*_*oon 4 c++ arrays static initialization

我现在可以在全球范围内做到这一点,一切正常:

const char* Foo::bars[3] = {"a", "b", "c"};
Run Code Online (Sandbox Code Playgroud)

但我想这样做是因为这更加清晰和自我记录(特别是如果你使用Enums作为索引):

const char* Foo::bars[3];
bars[0] = "a";
bars[1] = "b";
bars[2] = "c";
Run Code Online (Sandbox Code Playgroud)

无论如何可能吗?

我知道我可以在函数内部执行此操作(例如,类的构造函数)但是如果在程序的开头没有调用构造函数并且我想使用静态数组呢?这导致了问题.

Emi*_*ier 7

这个怎么样?

const char* Foo::bars[3] = {
/* Index    Value */
/* 0 */     "a",
/* 1 */     "b",
/* 2 */     "c"
};
Run Code Online (Sandbox Code Playgroud)

我经常使用这种"技术"来使结构数组的初始化看起来像一个自我记录的电子表格.