0
error: no matching function or call to 'MainWindow::~MainWindow()'
앱을 실행할 수 없습니다 - QtSql
. 이 문제를 해결하기 위해 Google에서 찾을 수 없었습니다. 내 프로젝트 파일의 코드 (mainwindow.cpp
, main.cpp
및 mainwindow.h
)를 포함 시켰습니다. 그리고 나는 .pro
(QT + = core gui sql)에도 sql을 포함시켰다."오류 : 일치하는 함수 또는 호출이 없습니다"라는 메시지가 내 창 소멸자에게 표시됩니다.
번호 :
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtDebug>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlTableModel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
virtual ~MainWindow();
private:
Ui::MainWindow *ui;
QSqlDatabase db;
QSqlTableModel *model;
};
#endif // MAINWINDOW_H
MAIN.CPP :
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.cpp :
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase(QString("QMYSQL"));
db.setHostName(QString("LOCALHOST\\MYSQL"));
db.setDatabaseName(QString("testdb"));
db.setUserName(QString("ROOT"));
db.setPassword(QString("PASSWORD"));
db.open();
MainWindow::~MainWindow() // ERROR
{
db.close();
delete ui;
}
컴파일 출력 :
16:34:42: Running steps for project TisbiCourseWork...
16:34:42: Configuration unchanged, skipping qmake step.
16:34:42: Starting: "/usr/bin/make"
g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../TisbiCourseWork -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I. -I. -I../TisbiCourseWork -I. -o main.o ../TisbiCourseWork/main.cpp
g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../TisbiCourseWork -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I. -I. -I../TisbiCourseWork -I. -o mainwindow.o ../TisbiCourseWork/mainwindow.cpp
../TisbiCourseWork/mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)':
../TisbiCourseWork/mainwindow.cpp:18:25: error: no matching function for call to 'MainWindow::~MainWindow()'
MainWindow::~MainWindow()
^
../TisbiCourseWork/mainwindow.cpp:18:25: note: candidate is:
In file included from ../TisbiCourseWork/mainwindow.cpp:1:0:
../TisbiCourseWork/mainwindow.h:20:13: note: virtual MainWindow::~MainWindow()
virtual ~MainWindow();
^
../TisbiCourseWork/mainwindow.h:20:13: note: candidate expects 1 argument, 0 provided
../TisbiCourseWork/mainwindow.cpp:19:1: error: expected ';' before '{' token
{
^
../TisbiCourseWork/mainwindow.cpp:22:1: error: expected '}' at end of input
}
생성자의 본문이 열려있어 닫을 때'} '가 없습니다. – Mat
와우, 고마워, 내가 어떻게 그것을 놓칠 수 있니 .... 이제 한 잔의 cofee를 얻을 시간이다. =/ – rcx
이 질문은 구문 오류 또는 오타가 원인 인 것으로 보입니다. –