Compilerfehler C2653: Kein Klassen- oder Namespace-Name

Daher hatte ich in letzter Zeit dieses äußerst frustrierende Problem mit Visual C ++ 2012. Bis vor ein paar Stunden habe ich Code einwandfrei geschrieben und alles hat wie beabsichtigt funktioniert, bis ich mich entschlossen habe, einige Dinge zu optimieren und einige Klassen zu löschen. Ich habe alle Fehler behoben, die deswegen aufgetaucht sind, z. false includes, etc. Leider wurde der VS-Compiler danach verrückt. Es gab mir Fehler wie:

Error 14 error C2653: 'Class' : is not a class or namespace name

oder auch

Error 5 error C2143: syntax error : missing ';' before '}'
Error 4 error C2059: syntax error : '>'

Ich habe mehrmals nachgesehen und alles ist an der richtigen Stelle: Alle Überschriften sind enthalten, alle Symbole sind dort platziert, wo sie sein sollten.

Soweit ich weiß, liegt das Problem nicht bei meinem Code, sondern beim Compiler selbst ... Ich denke, Visual Studio kann manchmal sehr nervig sein. Jedenfalls wäre ich sehr dankbar, wenn mir jemand dabei helfen könnte.

(Das Deaktivieren von vorkompilierten Headern hat übrigens funktioniertnicht Arbeit)

Relevante Teile des Codes:

Fehler 14:

#include "PlayerEntity.h"
PlayerEntity::PlayerEntity(void) {} // This line causes the error

Fehler 5:

class GameScreen : public BaseScreen
{
public:
    ...
private:
    ...
}; // This line causes the error

Fehler 4:

private:
     std::vector<BaseEntity*> _EntityList; // This line causes the error

Ganze PlayerEntity.h-Datei:

#ifndef PENTITY_H
#define PENTITY_H

#include "BaseEntity.h"

class PlayerEntity : public BaseEntity
{
public:
    PlayerEntity(void);
    PlayerEntity(float, float);
    virtual ~PlayerEntity(void);

    void render(sf::RenderWindow&);
    void update();
private:
    void init();
};

#endif

Ganze GameScreen.h-Datei:

#ifndef GSCREEN_H
#define GSCREEN_H

#include "BaseScreen.h"
#include "BaseEntity.h"
#include "PlayerEntity.h"

class GameScreen : public BaseScreen
{
public:
    GameScreen(sf::Vector2u&);
    virtual ~GameScreen(void);

    void start();
    void stop();

    void render(sf::RenderWindow&);
    void update(void);

    void addEntity(BaseEntity*);
    void destoryEntity(int id);
private:
    std::vector<BaseEntity*> _EntityList;
    sf::Vector2u _ScreenDimensions;
};

#endif

Ganze BaseEntity.h-Datei:

#ifndef BSENTITY_H
#define BSENTITY_H

#include "Input.h"
#include <SFML/Graphics.hpp>

class BaseEntity
{
public:
    BaseEntity(void);
    virtual ~BaseEntity(void);

    sf::Vector2f position;

    virtual void update(void);
    virtual void render(sf::RenderWindow&);
    void compare(BaseEntity*);
protected:
    sf::Texture *_EntityTexture;
    sf::Sprite  _EntitySprite;

    bool _isAlive;
    int  _id; 

    virtual void init();
};

#endif

Ganze Input.h-Datei:

#ifndef INPUT_H
#define INPUT_H

#include "ScreenSystem.h"
#include <SFML/Window.hpp>

class Input
{
public:
    Input(void);
    Input(sf::RenderWindow*);
    virtual ~Input(void);

    static bool keyPressed(int);
    static bool keyReleased(int);

    static bool mouseHeld(int);
    static bool mouseReleased(int);
private:
    static sf::RenderWindow *_Window;
};

#endif

Ganze ScreenSystem.h-Datei:

#ifndef GHANDLER_H
#define GHANDLER_H

#include "BaseScreen.h"
#include "MenuScreen.h"
#include "GameScreen.h"
#include <SFML/Window.hpp>

class ScreenSystem
{
public:
    ScreenSystem(void);
    ScreenSystem(sf::RenderWindow*);
    virtual ~ScreenSystem(void);

    BaseScreen *getCurrentScreen(void);
    void setScreen(int);
private:
    int _currentScreenID;

    std::vector<BaseScreen*> _Screens;
    sf::RenderWindow *_Window;
};

#endif

Antworten auf die Frage(2)

Ihre Antwort auf die Frage