C++ ';游戏状态';:基类未定义

C++ ';游戏状态';:基类未定义,c++,class,C++,Class,我有一个通用的游戏状态类: #pragma once #include "GameContext.h" class GameContext; class GameState { private: protected: public: GameState(GameContext* context); GameContext* gameContext = nullptr; virtual void update(float deltaTime) = 0; v

我有一个通用的
游戏状态
类:

#pragma once

#include "GameContext.h"

class GameContext;

class GameState
{
private:
protected:
public:
    GameState(GameContext* context);

    GameContext* gameContext = nullptr;

    virtual void update(float deltaTime) = 0;
    virtual void draw(float deltaTime) = 0;

};
这应该是其他游戏状态的基础。我试图实现一个
GameState
的派生类:

#pragma once
#include <iostream>

#include "GameState.h"
#include "GameContext.h"

class GameStateMenu : public GameState
{
private:
protected:
public:
    GameStateMenu(GameContext* gameContext);

    void update(float deltaTime);
    void draw(float deltaTime);
};
上面写着

“游戏状态”:基类未定义

我已经在谷歌上搜索了好几个小时,查看了我的代码,但仍然无法理解。我觉得它应该知道什么是
GameState
,但我不明白为什么它不知道


(如果当前代码不足以解决问题,那么其余代码都可以使用)

因为我怀疑问题是一个循环依赖项,我还向前声明了它,这意味着我在编译时没有看到关于它的错误。删除
#在
GameState.h
中包含“GameContext.h”
删除了导致问题的一个循环依赖项

因为我怀疑问题是一个循环依赖项,我也向前声明了它,这意味着我在编译时没有看到关于它的错误。删除
#在
GameState.h
中包含“GameContext.h”
删除了导致问题的一个循环依赖项

如果在代码中还有更好的方法做任何事情,我总是建议建设性的批评!我希望这能让事情变得更清楚,并去掉一些绒毛。如果你觉得我编辑得太多,你可以随时重新或回滚我的编辑。没问题,非常感谢!!这可能不是您的问题,但在GameState类标题中,您包括GameContext.h文件以及转发声明。只要做一个或另一个。我想你有一个循环包括在某处。如果有更好的方法做任何事情的代码以及我总是赞赏建设性的批评!我希望这能让事情变得更清楚,并去掉一些绒毛。如果你觉得我编辑得太多,你可以随时重新或回滚我的编辑。没问题,非常感谢!!这可能不是您的问题,但在GameState类标题中,您包括GameContext.h文件以及转发声明。做一个或另一个。我猜你在某处有一个循环包含。
class GameStateMenu : public GameState