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