1

この CResources クラス宣言があり、このエラーが発生します

「エラー C4430: 型指定子がありません - int と見なされます」

#include <set>
#include <unordered_set>


const int R_NUMBER = 5;

typedef enum {
    M,

} OBJECT_ENUM;


typedef enum {
    FILE_O,

} RESOURCE_ENUM;

typedef struct _resourcesMapping {
    CBuffer apiBuffer;
    int ObjectIndex;
};
    class CResources {
        int rCount;
        int* resources;

    public:
        CResources(int);
        ~CResources();
        int getCount();
        int getObjectsCount();
        int rOrder[R_NUMBER];
        std::set<int> ObjectsSet;
    };

私は何を間違っていますか?

減速前にコードを追加してください。

4

4 に答える 4

3

するのを忘れていました#include <set>

編集後

行 18:CBuffer apiBuffer;では、識別子CBufferが不明です。また、何も宣言していないため、 typedefonは無視されます。typedef struct _resourcesMapping

また、アンダースコアで始まる識別子はグローバル名前空間で予約されているため、使用しないでください_resourcesMapping

于 2013-03-25T08:36:18.513 に答える
1
typedef struct _resourcesMapping {
    CBuffer apiBuffer;
    int ObjectIndex;
}; //missing typedef name

それは次のようなものでなければなりません:

typedef struct _resourcesMapping {
    CBuffer apiBuffer;
    int ObjectIndex;
}ResourcesMapping;

それ以外は特にエラーはないと思います。あなたのエラーは他の場所にあるようです。

于 2013-03-25T08:50:50.663 に答える
0

私はあなたがちょうど必要だと思います:

using namespace std;

とにかく助かりました。

于 2014-05-07T03:51:09.280 に答える
0

通常、「using namespace xxx;」を使用します。悪い考えです。後で問題を引き起こす可能性があります。問題が発生する例を以下に示します。

void functionX();

namespace mynamespace { 
  void functionX();
};

代わりに、次のような接頭辞を使用することをお勧めします

mynamespace::functionX();
functionX();

H番目

于 2014-11-17T11:44:11.787 に答える