当我尝试在标头中声明一个向量时,我不断收到一长串错误。我已经环顾了一段时间,但找不到解决方案。
以下是错误:
1>正在编译... 1>game.cpp 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38):错误 C2143:语法错误:缺少 ';' 在'<' 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38) 之前:错误 C2071:'input::vector':非法存储类 1>c:\ users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38) : error C2238: unexpected token(s) before ';' 1>main.cpp 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38):错误 C2143:语法错误:缺少 ';' 在'<' 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38) 之前:错误 C2071:'input::vector':非法存储类 1>c:\ users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38) : error C2238: unexpected token(s) before ';' 1>input.cpp 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38):错误 C2143:语法错误:缺少“;” 在'<' 1>c 之前:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38):错误 C2071:'input::vector':非法存储类 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int 1>c:\users\legacyblade\documents\visual studio 2008\projects\fourswords\fourswords\input.h(38) : error C2238: unexpected token(s) before ';'
这是源代码:
#include <vector>
#include <SFML/Graphics.hpp>
#ifndef _input_h
#define _input_h
class input
{
public:
input();
void update();
//----input keys----//
// Directions
bool upPress;
bool downPress;
bool leftPress;
bool rightPress;
// Actions
bool aPress;
bool bPress;
bool jumpPress;
bool shieldPress;
// Menu
bool startPress;
bool screenshotPress;
bool fullscreenPress;
//------------------//
private:
extern vector<sf::Keyboard::Key> keyBindings;
};
#endif
无论有没有 extern,它都会给我同样的错误,即使我改变了向量中事物的类型(甚至是 int)。
非常感谢您的阅读。如果有人可以提供帮助,那就太好了。我需要向量来做我想做的事情。不知道为什么给我带来这么大的麻烦。同一地点的任何其他类型的变量都不会导致错误。只有向量。