c++ - '游戏状态' : base class undefined

标签 c++ class

我有一个通用的 GameState 类:

#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 的基础。我试图实现 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);
};

我在执行 GameStateMenu 时遇到错误

class GameStateMenu : public GameState

它说的地方

'GameState': base class undefined

我已经用谷歌搜索并浏览了我的代码好几个小时了,但仍然无法弄清楚。我觉得它应该知道 GameState 是什么,但我不明白为什么它不知道。

(如果目前的代码还不够解决,剩下的可用 HERE )

最佳答案

正如我怀疑的那样,问题出在循环依赖上,我也提前声明了它,这意味着我在编译时没有看到有关它的错误。删除 GameState.h 中的 #include "GameContext.h" 删除了导致问题的一个循环依赖项。

关于c++ - '游戏状态' : base class undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40098274/

相关文章:

c++ - 从 "const char*"到 "char"错误的无效转换

c++ - RegCreateKeyEx() 创建的 key 是否打开?

javascript - 如何从数组中获取分类对象的值

c++ - 使用类构造函数初始化类对象的指针?

c++ - 为什么这个程序会显示编译时警告?

javascript - 如何将音频从浏览器流式传输到 WebRTC native C++ 应用程序

c++ - sscanf 的精度问题

c++ - 代码占用了我一半的输入

C++:从 dll 动态加载类

python - 如何将父类转换(继承)为子类?