c++ - 演示程序错误 : '' was not declared in this scope

标签 c++ qt netbeans scope qlabel

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

private:
QCheckBox *native;
QLabel *integerLabel;
QLabel *doubleLabel;
QLabel *itemLabel;
...
QLabel *questionLabel;
QLabel *warningLabel;
QLabel *errorLabel;
QLabel *newLabel;     // <== This is new
QErrorMessage *errorMessageDialog;

在构造函数 Dialog::Dialog 中,我(尝试)为变量分配内存:

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);

据我所知,我已经通过复制和粘贴 *errorLabel 并更改其名称在此类中正确地创建和分配了变量。然而编译器发出错误:

error: 'newLabel' was not declared in this scope

当我单击错误时,它会将我带到构造函数中的"new"行。如果我在构造函数中标记出引用 newLabel 的两行,程序就会编译。在我看来是在这个范围内。我在这里犯了什么错误?我们将来如何防止这些类型的问题? (我已经搜索了数十个类似的帖子,并且能够在 30 秒或更短的时间内识别出 OP 的错误,但我找不到自己的错误,也找不到在类中声明变量但在构造函数中找不到变量的帖子。)

提前致谢, 凯尔

最佳答案

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

我创建了一个新项目,并将非工作项目中的 cpp/h 文件复制到新项目中。新项目编译。对于新项目,我现在可以将其他私有(private)变量添加到类中并在构造函数(以及 IDE)中访问它们。我可以轻松访问所有参数以显示项目相同,但一个编译而另一个不编译。我只能得出结论,项目本身不知何故已损坏(这不会激发信心)。

虽然我松了一口气这不是我的愚蠢的程序错误,但我对无法找到并修复项目文件中的任何错误感到失望。感谢所有提出建议的人。

关于c++ - 演示程序错误 : '' was not declared in this scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16527801/

相关文章:

c++ - 异常:内存位置 0x00e4df90 处的 std::bad_alloc

c++ - 使用概念或 SFINAE 检查类是否具有带有 std::array 参数的模板化成员函数

c++ - VTK + QT 项目 : error LNK1169: one or more multiply defined symbols found

java - JUnit @Ignore 有用吗?

c++ - 试图实现二进制搜索算法,似乎无法让它工作

c++ - C++编译设计:安全地扩展类

QTableWidget 原始索引排序

c++ - 更改场景事件处理程序中的 QGraphicsItem 位置?

c++ - 无法为 Netbeans 启用 pthread

java - 在 Tomcat 7 (JBoss EWS 2.0) openshift 中部署 WAR 文件后出现 HTTP 404