1
我有一个非常奇怪的问题。C++:语法错误C2061:标识符
在我的头 “compier.h” 我有以下的原型:
void WriteMap(FILE *outfile,clsMapping &uMap);
在我宣布像这样的CPP:
void CCompiler::WriteMap(FILE *outfile,clsMapping &uMap)
{
int iSize = uMap.Content().size();
fwrite(&iSize,sizeof(int),1,outfile);
int iOffset=uMap.iOffset;
fwrite(&iOffset,sizeof(int),1,outfile);
vector<udtMapping>::iterator it = uMap.Content().begin();
int n = 0;
for (;it != uMap.Content().end(); ++it)
{
fwrite(&it->ByteStart, sizeof(int), 1, outfile);
fwrite(&it->ByteCount, sizeof(int), 1, outfile);
}
}
编译器告诉我 “语法错误C2061:标识符'clsMapping' 它告诉我:
声明与“”无效CCompiler :: WriteMap(FILE * outfile,& uMap)“(第30行在”m:\ app \ compiler.h“中声明)”。
clsMapping在标题 “structures.h” 宣称:
class clsMapping
{
private:
vector<udtMapping> m_content;
protected:
public:
vector<udtMapping> &Content();
void Add(int i1, int i2);
int iOffset;
void FeedFeaturesFromMap(udtFeatures &uFeatures,int uIndex);
};
在compiler.h我已经指出
#include "structures.h"
难道我忽略了一个错字,或者是更严重?
谢谢你的帮助。
clsMapping是一个类吗?你有没有在这个文件中明确声明或包含声明? – Rup 2013-05-06 10:57:34
有没有比这更多的错误? – 2013-05-06 10:57:48
**哪里有报告错误? 'clsMapping'在哪里声明,以及如何? – Angew 2013-05-06 10:57:53