gpt4 book ai didi

C++ "argument list for class template "迭代器“丢失”错误

转载 作者:行者123 更新时间:2023-11-28 01:41:05 24 4
gpt4 key购买 nike

我有这门课:

template<typename T>
class Konten
{
enum { ssize = 100 };
T stack[ssize];
int top;
public:
Konten() : top(0) {}
void push(T i) {
assert(top < ssize); stack[top++] = i;
};
T pop() {
assert(top > 0); return stack[--top];
};
int rozmiar() { return top; };

class iterator {
Konten& s;
int index;
public:
iterator(Konten& is) : s(is), index(0) {};
iterator(Konten& is, bool) : s(is), index(s.top) {};
T operator++() { // Prefix
assert(index < s.top);
return s.stack[++index];
};
T operator++(int) { // Postfix
assert(index < s.top);
return s.stack[index++];
};
T& operator*() const { return s.stack[index]; };
iterator& operator=(const iterator& rv) {
s = rv.s;
index = rv.index;
return *this;
}
};
iterator begin() { return iterator(*this); };
iterator end() { return iterator(*this, true); };

friend class iterator;
};

如您所见,其中还有另一个类。我想以这种方式创建迭代器类的对象:

Konten<double> pier;
iterator it1(pier);

但我不断收到以下错误:“缺少类模板“迭代器”的参数列表”。

我做错了什么?

最佳答案

您的迭代器需要声明为 Konten<double>::iterator .

关于C++ "argument list for class template "迭代器“丢失”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47125751/

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