Compilerfehler bei Erstellung von Verketteter Liste (STL)



  • Moin

    Habe ein Problem in einer Klasse, das leidergottes auch auftritt wenn ich versuche die Problemzeile in einer anderne Klasse zu verwenden (was natürlich eh keinen sinn macht)

    erstmal die klasse:

    #ifndef PLAYER_H
    #define PLAYER_H
    
    #include <list>
    #include "Part.h"
    
    class CPlayer
    {
      public:
    	  void Init		();
    	  void Update	();
    	  void Render	();
    	  void Del		();
    	  void SetDirect(int Key);
    	  bool IsAlive	() {return m_bIsAlive;}	  
    
      private:
    	  int	m_Direction;
    	  bool	m_bIsAlive;
    	  CPart m_Head;
    	  list<CPart> m_PartList;
    
    };
    
    #endif
    

    ohne die letzte Zeile, also

    list<CPart> m_PartList;
    

    klappt die compilierung ohne weitere probleme. wenn ich allerdings die liste trotzdem erstelle, und sei es nur eine liste vom typ int, spuckt der compiler folgende fehlermeldung aus:

    e:\datenlager\c++\snake\snake\Player.h(21) : error C2143: Syntaxfehler: Es fehlt ';' vor '<'
    e:\datenlager\c++\snake\snake\Player.h(21) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    e:\datenlager\c++\snake\snake\Player.h(21) : error C2238: Unerwartete(s) Token vor ';'
    

    diese 3 fehlermeldungen wiederholen sich dann noch drei weitere male

    es ist eigentlich nicht das erste mal dass ich mit listen arbeite deshalb kann ich den fehler absolut nicht nachvollziehen und wäre über baldige hilfe erfreut

    gruß kane



  • std::list<..> Name;



  • list liegt im Namespace std, also

    std::list<CPart> m_PartList;
    

    Klassenpräfixe sind übrigens out.


Log in to reply