我在派生类中遇到过这种情况,但与 QDialog 基类相同:
当我做
QDialog dialog();
dialog.exec();
编译器抱怨
J:\...\mainwindow.cpp:-1: In member function 'void MainWindow::on_viewButton_pressed()':
J:\...\mainwindow.cpp:72: Fehler:request for member 'exec' in 'dialog', which is of non-class type 'QDialog()'
这与正在使用的构造函数有关,因为当我这样做时
QDialog dialog(0);
dialog.exec();
代码编译没有错误。这也有效:
QDialog *dial = new QDialog();
dial->exec();
所以。是因为显式构造函数吗?
文档说它被定义为
QDialog::QDialog ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
那么前两个示例不应该完全相同吗?以及为什么编译器在第二行抱怨,而不是在构造函数中抱怨。
感谢您的启发,非常欢迎对该主题的进一步阅读提示