我刚刚重新组织了一个项目的代码,现在我遇到了无法解决的错误。此标头包含在尝试编译的.cpp文件中。
#include "WinMain.h"
#include "numDefs.h"
#include <bitset>
class Entity
{
public:
Entity();
virtual ~Entity();
virtual bitset<MAX_SPRITE_PIXELS> getBitMask();
virtual void getMapSection(float x, float y, int w, int h, bitset<MAX_SPRITE_PIXELS>* section);
};
我为Entity :: getBitMask()的声明收到了这些编译器错误:
错误C2143:语法错误:缺少';'在'&lt;'
之前错误C2433:'Entity :: bitset':数据声明中不允许'virtual'
错误C4430:缺少类型说明符 - 假设为int。注意:C ++不支持default-int
错误C2238:';'
之前的意外标记下一行还有更多类似的错误。似乎bitset没有被包括但显然是?我无法弄清楚出了什么问题。 WinMain.h包含windows.h,numDefs.h不包含任何内容。
使用MS Visual C ++ 2008。
答案 0 :(得分:8)
将bitset声明为std::bitset<MAX_SPRITE_PIXELS>
。
答案 1 :(得分:5)
bitset
模板在std::
命名空间中定义,因此您需要在类声明之前的某个位置引用它的全名std::bitset
或添加using namespace std;
。
答案 2 :(得分:4)
我想你需要说std :: bitset。
答案 3 :(得分:0)
“numDefs.h”
中的错误