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未知。此外,typedefontypedef 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();

Hth

于 2014-11-17T11:44:11.787 回答