Containeriterator in Templateklasse deklarieren
-
Hallo,
ich bin noch Anfänger und komme hier nicht weiter. Ich wäre dankbar, wenn jemand mal drüberschauen könnte.
template<class T> class maximum{ public: private: std::list<T> maxList; //std::list<T>::iterator myIter; //laeuft nicht std::list<T>::iterator;//laeuft };Eine Containerliste kann ich deklarieren, aber nicht den Iterator myIter. Adererseits wird die alleinige Typangabe akzeptiert(?).
-
std::list<T>::iteratorist ein abhängiger name (nämlich abhängig vom templateparameter T), d.h. du musst dem compiler hier helfen und sagen, dass dieser name einen typ bezeichnet:template <class T> class Foo { //... typename std::list<T>::iterator yourIter; };in diesem fall böte sich außerdem noch ein typedef an, um die verwendung zu vereinfachen:
typedef typename std::list<T>::iterator iterator; iterator yourIter;
-
Vielen Dank. Jetzt klappts
