1

プロジェクトのコードを再編成したところ、解決できないエラーが発生しています。このヘッダーは、コンパイルしようとしている .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: 構文エラー: ';' がありません 「<」の前

エラー C2433: 'Entity::bitset': 'virtual' はデータ宣言では許可されていません

エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int をサポートしていません

エラー C2238: ';' の前に予期しないトークンがあります

次の行にも同様のエラーがあります。ビットセットが含まれていないようですが、明らかに含まれていますか? 何が問題なのかわかりません。WinMain.h には windows.h が含まれ、numDefs.h には何も含まれていません。

MS Visual C++ 2008 を使用。

4

4 に答える 4

8

ビットセットを として宣言しstd::bitset<MAX_SPRITE_PIXELS>ます。

于 2009-06-22T19:45:40.260 に答える
5

bitsetテンプレートはstd::名前空間で定義されるため、完全な名前で参照するか、クラス宣言の前に追加する必要がありますstd::bitsetusing namespace std;

于 2009-06-22T19:45:41.867 に答える
4

std::bitset と言う必要があると思います。

于 2009-06-22T19:46:31.257 に答える
0

「numDefs.h」のエラーのようです

于 2009-06-22T19:45:19.373 に答える