我有这个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;
};
我做错了什么?
在减速前添加代码。
答案 0 :(得分:3)
你忘了#include <set>
。
编辑后
在第18行:CBuffer apiBuffer;
,标识符CBuffer
未知。
此外,typedef
上的typedef struct _resourcesMapping
会被忽略,因为您没有声明任何内容。
此外,以下划线开头的标识符在全局命名空间中保留,不应使用_resourcesMapping
。
答案 1 :(得分:1)
typedef struct _resourcesMapping {
CBuffer apiBuffer;
int ObjectIndex;
}; //missing typedef name
应该是这样的:
typedef struct _resourcesMapping {
CBuffer apiBuffer;
int ObjectIndex;
}ResourcesMapping;
除此之外,我认为没有任何错误。您的错误似乎在其他地方。
答案 2 :(得分:0)
我认为你只需要:
using namespace std;
无论如何它帮助了我。
答案 3 :(得分:0)
一般使用“using namespace xxx;”是个坏主意。它可能会在以后引起问题。 它将导致问题的一个例子如下所示。
void functionX();
namespace mynamespace {
void functionX();
};
我建议使用前缀,例如
mynamespace::functionX();
functionX();
H个