-3

事实上,我并不是真的来这里问一个问题,而是分享一个在几个小时内让我发疯的问题。

在大多数情况下,错误“expected unqualified-id [...]”的经典解决方案是在类声明末尾缺少分号。这里情况不同。

现在让我解释发生了什么。我需要一个类,一个由同事开发的一些对象,以及那些已经被软件的其他部分使用的资源。所以我知道它有效且可用。所以我修改了我的makefile和我的包含,重新编译和繁荣,我有:

foob​​ar.hh:81:错误:“受保护”之前的预期不合格 ID

我所包含的东西与我的同事几乎相同,具有相似的 makefile 和环境,所以我无法理解这个问题。但最后,我们发现了很大的不同:我使用的是 QT(因为我正在开发 GUI)并且编译器指向的发生错误的方法都被命名为 'signals'

我没有完整的解释,但我们只是将方法名称更改为其他名称,并且它正在工作。对于 QT 用户,您知道信号是一个特定的 QT 词,用于信号/槽机制,但我仍然在这方面浪费了很多时间。如果有人可以准确地解释我感兴趣的问题,但我想与您分享这个快速解决方法(并且因为 stackoverflow 在过去帮助了我很多时间)。

问候, Ikwy

4

1 回答 1

3

signals是 Qt 中的一种关键字。此名称不能用作 Qt 中的标识符。您不能使用此名称声明函数或变量。

  • 您可以重命名您的标识符。
  • 或者你可以让你的项目禁用 Qt 关键字,但是你应该确保这些关键字没有在你的项目中使用它们的 Qt 含义。(他们可能是)。要禁用关键字,您应该使您的项目(假设使用qmakeCONFIG += no_keywords启用选项)
于 2013-01-11T16:55:26.373 回答