C ++"类模板的参数列表" iterator"缺少"错误

时间:2017-11-05 19:34:38

标签: c++ class templates

我上过这堂课:

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);

但我继续得到以下错误:&#34;类模板的参数列表&#34; iterator&#34;缺少&#34;。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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