C++ 演示程序错误:'';未在此范围中声明

C++ 演示程序错误:'';未在此范围中声明,c++,qt,netbeans,scope,qlabel,C++,Qt,Netbeans,Scope,Qlabel,我是Qt新手,已经开始使用找到的演示程序。我已将类AddressBook重命名为Dialog。它编译和执行得很好。我想将自己的代码添加到示例中,因此我添加了一个新标签作为类的私有成员: private: QCheckBox *native; QLabel *integerLabel; QLabel *doubleLabel; QLabel *itemLabel; ... QLabel *questionLabel; QLabel *warningLabel; QLabel *errorLabel

我是Qt新手,已经开始使用找到的演示程序。我已将类AddressBook重命名为Dialog。它编译和执行得很好。我想将自己的代码添加到示例中,因此我添加了一个新标签作为类的私有成员:

private:
QCheckBox *native;
QLabel *integerLabel;
QLabel *doubleLabel;
QLabel *itemLabel;
...
QLabel *questionLabel;
QLabel *warningLabel;
QLabel *errorLabel;
QLabel *newLabel;     // <== This is new
QErrorMessage *errorMessageDialog;
private:
QCheckBox*本地;
QLabel*整数标签;
QLabel*双标签;
QLabel*项目标签;
...
QLabel*问题标签;
QLabel*警告标签;
QLabel*错误标签;
QLabel*newLabel;//setFrameStyle(frameStyle);
QPushButton*warningButton=新的QPushButton(tr(“QMessageBox::&warning()”);
errorLabel=新的QLabel;
errorLabel->setFrameStyle(frameStyle);
QPushButton*错误按钮=
新的QPushButton(tr(“QErrorMessage::showM&essage()”);
newLabel=newqlabel;//setFrameStyle(frameStyle);
据我所知,通过复制和粘贴*errorLabel并更改其名称,我已经在这个类中正确地创建和分配了变量。但编译器会发出以下错误:

错误:“newLabel”未在此作用域中声明

当我单击错误时,它会将我带到构造函数中的“new”行。如果我在构造函数中注释掉引用newLabel的两行,程序将编译。在我心目中,它就在这个范围内。我在这里犯了什么错误?我们如何防止将来出现此类问题?(我搜索了几十篇类似的帖子,在30秒或更短的时间内识别出OP的错误,但我找不到自己的帖子,也找不到在类中声明变量但在构造函数中找不到的帖子。)

提前感谢,,
凯尔

我已经解决了这个问题。尽管这不是我所期望的答案,我还是发布了这个答案,以防它对社区的其他人有所帮助

我创建了一个新项目,并将cpp/h文件从非工作项目复制到新项目中。这项新的工程正在进行。在新项目中,我现在可以向类中添加其他私有变量,并在构造函数(以及IDE)中访问它们。我可以轻松访问所有参数,以显示项目是相同的,但一个编译,另一个不编译。我只能得出结论,项目本身在某种程度上被破坏了(这并不能激发信心)


虽然我很欣慰这不是一个愚蠢的编程错误,但我很失望无法找到并修复项目文件中的任何错误。感谢所有提出建议的人。

我已经解决了这个问题。尽管这不是我所期望的答案,我还是发布了这个答案,以防它对社区的其他人有所帮助

我创建了一个新项目,并将cpp/h文件从非工作项目复制到新项目中。这项新的工程正在进行。在新项目中,我现在可以向类中添加其他私有变量,并在构造函数(以及IDE)中访问它们。我可以轻松访问所有参数,以显示项目是相同的,但一个编译,另一个不编译。我只能得出结论,项目本身在某种程度上被破坏了(这并不能激发信心)


虽然我很欣慰这不是一个愚蠢的编程错误,但我很失望无法找到并修复项目文件中的任何错误。感谢所有提出建议的人。

所以我不得不问一下。在添加了
QLabel*newLabel
行之后,您是否确实保存了头文件?好问题,答案是肯定的(现在很多次)。谢谢。你正在使用Qt creator吗?如果是这样,当右键单击构造函数中的“newLabel”并从上下文菜单中选择“跟随光标下的符号”时会发生什么情况?您是否尝试过重建项目?我正在使用NetBeans 7.3。NetBeans IDE执行与您要求的任务类似的任务时,会说“无法解析标识符newLabel”。我已经完成了干净的构建。也许我需要重新制作整个项目。如果这不起作用,我可能不得不发布整个项目。我在使用sublime文本编辑器编辑文件时遇到了类似的错误。我关闭了所有该死的升华文本窗口。使用vi编辑器重新打开文件,然后重新进行更改,一切正常。说真的,我讨厌这种狗屎。不管怎样,你的回答有帮助。所以我不得不问。在添加了
QLabel*newLabel
行之后,您是否确实保存了头文件?好问题,答案是肯定的(现在很多次)。谢谢。你正在使用Qt creator吗?如果是这样,当右键单击构造函数中的“newLabel”并从上下文菜单中选择“跟随光标下的符号”时会发生什么情况?您是否尝试过重建项目?我正在使用NetBeans 7.3。NetBeans IDE执行与您要求的任务类似的任务时,会说“无法解析标识符newLabel”。我已经完成了干净的构建。也许我需要重新制作整个项目。如果这不起作用,我可能不得不发布整个项目。我在使用sublime文本编辑器编辑文件时遇到了类似的错误。我关闭了所有该死的升华文本窗口。使用vi编辑器重新打开文件,然后重新进行更改,一切正常。说真的,我讨厌这种狗屎。不管怎样,你的回答很有帮助。
warningLabel = new QLabel;
warningLabel->setFrameStyle(frameStyle);
QPushButton *warningButton = new QPushButton(tr("QMessageBox::&warning()"));

errorLabel = new QLabel;
errorLabel->setFrameStyle(frameStyle);
QPushButton *errorButton =
new QPushButton(tr("QErrorMessage::showM&essage()"));

newLabel = new QLabel;    // <== Error
newLabel->setFrameStyle(frameStyle);