2013-05-06 239 views
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" 

难道我忽略了一个错字,或者是更严重?

谢谢你的帮助。

+0

clsMapping是一个类吗?你有没有在这个文件中明确声明或包含声明? – Rup 2013-05-06 10:57:34

+0

有没有比这更多的错误? – 2013-05-06 10:57:48

+4

**哪里有报告错误? 'clsMapping'在哪里声明,以及如何? – Angew 2013-05-06 10:57:53

回答

0
#include "structures.h" 

必须被添加到cpp和h文件。

相关问题