C ++ - 错误:在“受保护”+ QT =>之前的预期非限定标识可能的解决方法

时间:2013-01-11 16:31:47

标签: c++ qt

事实上,我并不是真的在这里提出一个问题,而是分享一个让我疯狂的问题。

在大多数情况下,错误的经典解决方案'期望不合格的id [...]'是在类声明结束时丢失的分号。情况并非如此。

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

foobar.hh:81:错误:在“受保护”之前预期不合格的身份

我所包含的内容几乎与我的同事有相似的makefile和environnement,所以我无法理解这个问题。但最后,我们发现了很大的不同: 我正在使用QT(因为我正在开发GUI)和编译器指向的方法,其中发生的错误都被命名为“信号”

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

此致 Ikwy

1 个答案:

答案 0 :(得分:2)

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

  • 您可以重命名您的标识符。
  • 或者您可以禁用Qt关键字使您的项目成为可能,但是您应该确保这些关键字在您的项目中没有以Qt的含义使用。 (他们可能是)。要禁用关键字,您应该启用项目(假设使用qmake)且启用了CONFIG += no_keywords选项)