のときに g++ でエラーが発生しますList.cc:19:1: error: âIteratorâ does not name a type
。ヘッダーは以下
class List {
private:
class Element {
public:
char data;
Element *next;
Element *prev;
Element(Element *n,Element *p, char d);
};
Element *first;
public:
class Iterator {
public:
Iterator();
void operator++();
void operator--();
char& operator*();
const char& operator*() const;
bool operator==(const Iterator& itr);
bool operator!=(const Iterator& itr);
private:
Iterator(const Element& ele);
Iterator *it;
};
List();
~List();
Iterator& begin() const;
Iterator& end() const;
void insert(Iterator itr, char c);
void erase(Iterator itr);
};
19 行目は次のとおりです。
Iterator& List::begin() const
これは継承の問題ですか?List::Iterator を介して std::list のようにメイン関数でイテレータを呼び出そうとしています