peg
08-01-2007, 16:56
Hallo!
Es geht um eine einfach verkettete Liste, die mit einem Iterator versehen werden soll... leider spuckt g++ (v 4.0.2-5 Linux) folgende Meldung beim Compilieren aus:
List.h:15: error: 'Iterator' does not name a type
List.h:16: error: 'Iterator' does not name a type
List.cc:126: error: no 'Iterator List::anfang()' member function declared in class 'List'
List.cc:133: error: no 'Iterator List::ende()' member function declared in class 'List'
List.h:15: error: 'Iterator' does not name a type
List.h:16: error: 'Iterator' does not name a type
Hier die .h und Auszüge aus der .cc Datei:
list.h
#ifndef LIST_H
#define LIST_H
class List
{
friend class Iterator;
public:
List();
~List();
void insert(int i);
void erase(int i);
void eraseAll(int i);
void show();
int isIn(int i);
Iterator anfang(); // Fehler
Iterator ende(); // Fehler
private:
class Node
{
public:
Node();
Node(int i, Node * n);
~Node();
int v;
Node * next;
};
void erase_r(int i, Node * &i);
Node * head;
};
class Iterator
{
friend class List;
public:
void geheWeiter();
int & aktElement();
private:
List::Node * aktPos;
};
#endif
list.cc
....
void Iterator::geheWeiter ()
{
aktPos = aktPos->next;
}
int & List::aktElement ()
{
return aktPos->v;
}
Iterator List::anfang()
{
Iterator res;
res.aktPos = anfang;
return res;
}
Iterator List::ende()
{
Iterator res;
res.aktPos = 0;
return res;
}
....
Laut einem Script von meinem Prof sollte das so funktionieren. Sieht einer den Fehler?
Ich wäre für jede Hilfe sehr dankbar :)
mfg
Es geht um eine einfach verkettete Liste, die mit einem Iterator versehen werden soll... leider spuckt g++ (v 4.0.2-5 Linux) folgende Meldung beim Compilieren aus:
List.h:15: error: 'Iterator' does not name a type
List.h:16: error: 'Iterator' does not name a type
List.cc:126: error: no 'Iterator List::anfang()' member function declared in class 'List'
List.cc:133: error: no 'Iterator List::ende()' member function declared in class 'List'
List.h:15: error: 'Iterator' does not name a type
List.h:16: error: 'Iterator' does not name a type
Hier die .h und Auszüge aus der .cc Datei:
list.h
#ifndef LIST_H
#define LIST_H
class List
{
friend class Iterator;
public:
List();
~List();
void insert(int i);
void erase(int i);
void eraseAll(int i);
void show();
int isIn(int i);
Iterator anfang(); // Fehler
Iterator ende(); // Fehler
private:
class Node
{
public:
Node();
Node(int i, Node * n);
~Node();
int v;
Node * next;
};
void erase_r(int i, Node * &i);
Node * head;
};
class Iterator
{
friend class List;
public:
void geheWeiter();
int & aktElement();
private:
List::Node * aktPos;
};
#endif
list.cc
....
void Iterator::geheWeiter ()
{
aktPos = aktPos->next;
}
int & List::aktElement ()
{
return aktPos->v;
}
Iterator List::anfang()
{
Iterator res;
res.aktPos = anfang;
return res;
}
Iterator List::ende()
{
Iterator res;
res.aktPos = 0;
return res;
}
....
Laut einem Script von meinem Prof sollte das so funktionieren. Sieht einer den Fehler?
Ich wäre für jede Hilfe sehr dankbar :)
mfg