C++: 语法错误 C2061: 标识符

标签 c++ windows

我有一个非常奇怪的问题。

在我的标题“compier.h”中,我有以下原型(prototype):

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 在 header “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"

我是否忽略了一个拼写错误,还是更严重的问题?

谢谢你的帮助。

最佳答案

#include "structures.h"

必须同时添加到 cpp 和 h 文件中。

关于C++: 语法错误 C2061: 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16397230/

相关文章:

windows - 如何找到线程本地存储的开始和结束?

windows - 如何通过 Win API 调用或(更好)读取注册表值来读取 Windows 构建版本

c++ - QScrollArea 与 QGridLayout 混淆 : QGridLayout hidden and no scroll

windows - 在 Windows 上安装 Padre 1.0 时出错,Strawberry Perl v5.20,如何找到根本原因?

c++ - SFML 等 ionic Sprite 效果?

c++ - 在 ARM 处理器上运行 pcl::MovingLeastSquares 代码时出现双重释放或损坏运行时错误

windows - 从 Windows 转到 centOS 时 Composer 无法正常工作

windows - Windows XP 上保存的 'run' 对话的历史记录在哪里?

c++ - Atom 和 i3/5 之间常见的 gcc C/C++ 标志?

c++ - 链式插入运算符还有其他陷阱吗?