Fehler beim Anlegen einer Enum ....



  • Hallo, ich möchte eine Enum innerhalb einer Klasse definieren.
    Aber der Compiler liefert mir den Fehler:"error C2143: Syntaxfehler: Es fehlt '}' vor 'Konstante'" für die Zeile 4. Wenn ich die Zeile auskommentiere sind die Fehler weg. Die Beispiel, die ich im Internet finde sind genauso aufgebaut...
    Ich sehe hier keinen Fehler....

    class CScanner
    {
    public:
    	enum Errorcode { FILE_END, FILE_CLOSED };
    	CScanner(void);
    	~CScanner(void);
    	bool OpenFile(wxString strFilename);
    	void CloseFile();
    
    private:
    	int GetLine(wxString &strLine);
    
    protected:
    	wxStringTokenizer m_Tokenizer;
    	wxFile *m_pFile;
    };
    


  • FILE_END
    

    Ist bereits in WinBase.h als 2 definiert.


  • Mod

    AEine NKlasse Pmit NZeigermember Pund NDestruktor, Kaber Pohne NKopierkonstruktor Pund NZuweisungsoperator? AVerdächtig. PEbenso: S protected .



  • Das war es in der Tat. Allerdings ist mir die Fehlermeldung noch immer unverständlich....


  • Mod

    Aodhan schrieb:

    Das war es in der Tat. Allerdings ist mir die Fehlermeldung noch immer unverständlich....

    Na, statt FILE_END setzt da der Präprozessor irgendeinen Wert ein (-1?). Dann steht da

    enum Errorcode { -1, FILE_CLOSED };
    

    Dann versucht der Compiler das zu lesen: "Aha, ein enum, "Errorcode" soll es heißen und jetzt kommt die Liste der Bezeichner im enum, mal gucken, was der erste ist. "-1"? Nein, das ist eine Zahlenkonstante, das kann hier nicht stehen. Vielleicht war das enum schon zu Ende und die "}" fehlte. Das melde ich mal."


Log in to reply