私は本当に奇妙な問題を抱えています。
私のヘッダー「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'」と表示され、次のように表示されます。
この宣言は、""void CCompiler::WriteMap(FILE *outfile, &uMap)" ("m:\app\compiler.h" の 30 行で宣言) と互換性がありません。
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"
タイプミスを見落としましたか、それとももっと深刻な問題ですか?
お手伝いありがとう。