我现在我可以在全球范围内做到这一点,一切工作正常:C++:静态初始化数组成员,成员在同一时间
const char* Foo::bars[3] = {"a", "b", "c"};
但我想这样做,因为这是更清晰,自我记录(尤其是如果您使用枚举作为索引):
const char* Foo::bars[3];
bars[0] = "a";
bars[1] = "b";
bars[2] = "c";
无论如何可能吗?
我知道我可以在一个函数(例如,类的构造函数)中做到这一点,但如果在程序的开始时没有调用构造函数并且我想使用静态数组呢?这会导致问题。
为什么不应该调用构造函数? – Simone 2011-01-27 13:44:09
OP希望Foo :: bars成为一个静态成员,并且它的元素被静态初始化(在执行main之前)。 – 2011-01-27 14:16:14
@Emile是的,OP的第一行代码确实如此,只要`bars`被声明为静态的。构造函数将被调用,所以我想念整个讨论的观点。 – Simone 2011-01-27 14:24:59