我刚刚重新组织了一个项目的代码,现在我遇到了无法解决的错误。此标头包含在尝试编译的.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。

有帮助吗?

解决方案

将bitset声明为std::bitset<MAX_SPRITE_PIXELS>

其他提示

bitset 模板在std::命名空间中定义,所以你需要在它的全名std::bitset之前引用它,或者在类声明之前的某处添加using namespace std;

我想你需要说std :: bitset。

在<!>“; numDefs.h <!>”

中看起来像是一个错误
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top