簡體   English   中英

C ++“類模板“迭代器”的參數列表丟失”錯誤

[英]C++ “argument list for class template ”iterator“ is missing” error

我有這節課:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM