C++ 模板类数组定义不是类型名称、静态或枚举数C++;

C++ 模板类数组定义不是类型名称、静态或枚举数C++;,c++,arrays,class,templates,C++,Arrays,Class,Templates,我正在编写一个模板类来作为一个动态数组运行,我在一个问题上遇到了障碍,无法找出问题所在。我目不转睛地看了看,什么也没想到,但通过添加类名和变量大小,解决了一个类似的问题,但仍然得到了这两个。这是密码 template<class Val> class DynamArray { private: const int kSegmentSize = 15; int countPos; Val initial[DynamArray::kSegmentSize]; pu

我正在编写一个模板类来作为一个动态数组运行,我在一个问题上遇到了障碍,无法找出问题所在。我目不转睛地看了看,什么也没想到,但通过添加类名和变量大小,解决了一个类似的问题,但仍然得到了这两个。这是密码

template<class Val>
class DynamArray
{
private:
    const int kSegmentSize = 15;
    int countPos;
    Val initial[DynamArray::kSegmentSize];
public:
    DynamArray::DynamArray();
    DynamArray::~DynamArray();
    void DynamArray::PutVal(Val value);
    Val DynamArray::GetVal();
};
然后我得到

error C2065: 'kSegmentSize' : undeclared identifier
如果有人对此有任何想法,我们将不胜感激。

const int kSegmentSize = 15;
Val initial[DynamArray::kSegmentSize];
应该是

static const int kSegmentSize = 15;
Val initial[kSegmentSize];

因为在类声明中只允许静态积分指定数组大小。

感谢您解决了这个问题。
static const int kSegmentSize = 15;
Val initial[kSegmentSize];