我正在编写一个模板类来充当动态数组,我在一个问题上遇到了麻烦,无法弄清楚是什么问题。我已经搞砸了它并且只提出了一个类似的问题,通过添加类名和变量大小来解决这个问题,但仍然得到这两个问题。这是代码
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();
};
数组初始化导致错误修复我添加DynamArray::
的第一个问题并且错误消失但是这个仍然存在,我不知道这里剩下的是完整错误的副本。
error C2327: 'DynamArray<std::string>::kSegmentSize' : is not a type name, static, or enumerator
然后我得到
error C2065: 'kSegmentSize' : undeclared identifier
如果有人对此有任何想法,我们将不胜感激。
答案 0 :(得分:1)
这个
const int kSegmentSize = 15;
Val initial[DynamArray::kSegmentSize];
应该是
static const int kSegmentSize = 15;
Val initial[kSegmentSize];
因为只允许静态积分在类声明中指定数组大小。