迭代器子类单独包含

时间:2018-11-19 23:27:52

标签: c++ iterator

我是迭代器类的新手;不是如何在容器中使用迭代器,而是如何实现迭代器类。我有两个文件,.h和.cpp。现在,我的.cpp文件中出现编译器错误,显示“ 严重错误:'iterator'不是类,名称空间或枚举”。我不明白为什么它告诉我这一点。

注意:我确定我的代码中还有其他错误,但是现在我只是想解决现有的编译器错误。

Base.h

error_info

Base.cpp

#ifndef Base_h
#define Base_h

class Base {
  protected: 
    std::vector<std::vector<std::string> > vec;

  public:

    class iterator {

      private:
        Base* p = nullptr;
        size_t x, y;

      public:
        iterator() = default;
        iterator(Base *, size_t, size_t);
        ~iterator();
        iterator &operator++();
        Base operator*() const;
    }     

    iterator begin() const;
    iterator end() const;
    // bunch of other iterator::functions and Base::functions
};

#endif

编译器错误

iterator::iterator(Base *b, size_t i, size_t j): p(b), x(i), y(j) {}
iterator::~iterator();
// Bunch of other iterator::functions including Base::functions

0 个答案:

没有答案