当我编译时,我收到错误:'输入'没有在第17行命名类型
#ifndef GAME_H
#define GAME_H
#include "input.h"
// Can forward declare "class Input(GLFWwindow*);" here but it still
// gives the same error.
class Game
{
public:
Game(Input* input);
~Game();
void Input();
void Update();
void Render();
private:
Input* mpInput; //error here.
};
#endif // GAME_H
Input.h看起来像这样。
#ifndef INPUT_H
#define INPUT_H
#include <GLFW/glfw3.h>
#include <vector>
class Input
{
public:
Input(GLFWwindow* window);
~Input();
bool GetKey(int keyCode);
bool GetKeyDown(int keyCode);
bool GetKeyUp(int keyCode);
void Update();
private:
GLFWwindow* mpWindow;
std::vector<bool> mCurrentKeys;
std::vector<bool> mDownKeys;
std::vector<bool> mUpKeys;
const int NUM_KEYCODES = 256;
};
#endif // INPUT_H
我不知道这里发生了什么。我昨天遇到了类似的问题,并且无法弄明白,所以我尝试保存项目,关闭Code :: Blocks,重新启动Code :: Blocks,然后重新打开项目。然后我编译了它,它没有明显的原因。没有代码被更改或任何东西。我也尝试在这里重新加载项目,但它仍然会出现同样的错误。
答案 0 :(得分:0)
您的班级代码中有方法Input
。混合方法和类型的名称通常是个坏主意。在您的一个Game
类方法中考虑此代码:
Input();
这是方法Input
调用还是您正在尝试创建Input
类实例?尝试重命名Input
方法。