我有一个通用的 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/