【问题标题】:C++ just a syntax error: syntax error : identifierC++ 只是一个语法错误:语法错误:标识符
【发布时间】:2011-03-07 04:23:33
【问题描述】:

我现在感觉很愚蠢:

moveSequence look(COORD xyBeatle, fieldd &field);

这有什么问题,会出现语法错误?

error C2061: syntax error : identifier 'fieldd'

我想要做的是将类 fieldd 的引用传递给 look() 通过:

moveSequence sequence = look(xy, m_field);

好像不能识别类型字段

实际上,我到处都是错误,所有应该是类型字段的东西都假设为 int 类型。..

这是经过长达一周的重构,甚至还没有回到编译点,所以我不知道是什么变化立即导致了这种情况。


编辑:现在我注意到智能感知正在间歇性地强调编译器抛出真正错误的地方.....我禁用了 PCH 并重建,但这没有用。


编辑2: 变量名不是问题,这是我尝试的第一件事。


编辑3: 我终于能够捕捉到其中一个智能感知错误,它在不久更改为 "class fieldd" 之前显示为 "identifier "fieldd" is undefined" 我认为这可能是标题的问题。这家伙的问题是标题:http://www.gamedev.net/topic/555445-solvederror-c2061-syntax-error--identifier-t3dobject/

【问题讨论】:

  • 重构一周?早在它没有名字之前,我们就称之为“重写”!
  • 它几乎是,它失控了。每次我阅读 SO 时,我都会学习如何做一些“更正确”的事情,它看起来不错一分钟,直到我意识到它破坏了其他东西......这让更多搜索 SO....循环跨度>

标签: c++ syntax identifier


【解决方案1】:

field 似乎是一个类型名称。使用不同的变量名。

【讨论】:

  • 在我这样做之前,我会说在我改变之前名为field 的类不是问题。这仍然是问题吗?
  • 我无法回答这个问题,因为我不知道你改变了什么。但是从上面的代码来看,这就是你给我们的所有内容,它似乎相当于使用int int 作为函数或方法的参数。看看为什么这不起作用?
  • 我同意您将参数名称与参数类型不同的规定。但它与int int 不同,因为int 是一个关键字。
  • 好吧,我更改了类型名称的每个引用.. syntax error : identifier 'fieldd' 还是一样
  • 重申一下,更改类名没有效果。
【解决方案2】:

我们确实需要更多代码来识别您的问题,但我想知道您是否需要转发声明字段,因为您已将代码重构到不同的文件中,可能标头未正确包含或依赖项不再有意义?

将您的声明更改为:moveSequence look(COORD xyBeatle, class fieldd &field) 可能会给你更多的信息。

【讨论】:

  • 它是循环标题包含,并且前向声明修复了它!...只是在下一个文件中暴露了数百个其他错误,我必须解决..包括链接问题,谢谢你让我解开。
【解决方案3】:

fieldd 如果我理解得很好,则不会被识别为类型。

fieldd foobar 是否在触发错误的线路上工作?如果不是,您可能错过了声明 fieldd 的包含。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    相关资源
    最近更新 更多