gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:18 26 4
gpt4 key购买 nike

我正在编写一个用作动态数组的模板类,但我遇到了一个问题,无法找出问题所在。我仔细检查了它,除了通过添加类名和变量大小解决了一个类似的问题之外什么也没有提出,但仍然得到这两个。这是代码

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

如果有人对此有任何想法,他们将不胜感激。

最佳答案

这个

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

应该是

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

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

关于c++ - 模板类数组定义不是类型名称、静态或枚举数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26885086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com