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