如何在C ++中使用未初始化的静态数组?

时间:2015-10-19 21:13:12

标签: c++ static

好的,这是我的C ++头文件:

// a.h

class A
{
private:
    static A* aContainer[10];

public:
    static void generate(int amount);

}

这是.cpp档案:

// a.cpp

void A::generate(int amount)
{
    for(int i = 0; i < amount; i++)
    {
        aContainer[i] = new Container();
    } 
}

我知道必须初始化static个字段,但我需要能够在aContainer中拥有一些特定数量的元素。如果我初始化aContainer它将包含所有10个元素,但10意味着最大元素数。

我可以使用aContainer或类似内容初始化NULL吗?

1 个答案:

答案 0 :(得分:0)

我认为你有充分的理由不使用std::vector这是解决这个问题的自然方法。

可以使用大括号初始化数组或结构:

    A* A::aContainer[10] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };

如果未列出任何成员,则会将其初始化为零。所以上面的内容可以简化:

    A* A::aContainer[10] = {};