2013-05-06 244 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文件。

相關問題