jancarsten
13-12-2005, 18:31
HI!
Ich möchte mir eine Kleine Template Klasse schreiben. In dieser Template Klasse brauche ich den Interator. Wie kann ich den Iterator in einer Template Klasse Benutzen? Geht das überhaupt??
template<class Typ>
class myCon
{
private:
Typ _data;
list<Typ> myListe;
list<Typ>::iterator it;// Fehlermeldung
public:
void setDataBack(Typ newData);
Typ getData();
void printData();
myCon(void){};
~myCon(void){};
};
Fehlermeldung:
warning C4346: 'std::list<_Ty>::iterator': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
myCon.h(40): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'myCon<Typ>'
error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'it'
error C2501: 'myCon<Typ>::it': Fehlende Speicherklasse oder Typspezifizierer
Gebe ich den Typ direkt an also so: list<int>::iterator it; Funktioniert es aber eben so will ich es nicht.
Ich möchte mir eine Kleine Template Klasse schreiben. In dieser Template Klasse brauche ich den Interator. Wie kann ich den Iterator in einer Template Klasse Benutzen? Geht das überhaupt??
template<class Typ>
class myCon
{
private:
Typ _data;
list<Typ> myListe;
list<Typ>::iterator it;// Fehlermeldung
public:
void setDataBack(Typ newData);
Typ getData();
void printData();
myCon(void){};
~myCon(void){};
};
Fehlermeldung:
warning C4346: 'std::list<_Ty>::iterator': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
myCon.h(40): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'myCon<Typ>'
error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'it'
error C2501: 'myCon<Typ>::it': Fehlende Speicherklasse oder Typspezifizierer
Gebe ich den Typ direkt an also so: list<int>::iterator it; Funktioniert es aber eben so will ich es nicht.