每当我编译程序时,都会收到以下错误消息:
no matching function for call to 'MainWindow::sort(QStringList&, int&)'
sort(listt,x);
我还在我的标题中将sort函数声明为public。这可能是一个非常简单的错误,请原谅我,我是C ++的新手。然而,对我所做错的任何输入都将不胜感激:
// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtCore/QCoreApplication>
#include <QtCore>
#include <QFile>
#include <QDebug>
#include <sstream>
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QStringList sort(QStringList a);
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore/QCoreApplication>
#include <QtCore>
#include <QFile>
#include <QDebug>
#include <sstream>
using namespace std;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
...
}
MainWindow::~MainWindow()
{
...
}
QStringList sort(QStringList a, int n)
{
...
}
void MainWindow::on_pushButton_clicked()
{
...
sort(listt,x)
...
}
答案 0 :(得分:2)
您的功能定义中缺少MainWindow::
。
QStringList sort(const QStringList & a, int n) {
...
}
应该是:
QStringList MainWindow::sort(const QStringList & a, int n) {
//Your code
}
原型也应该是(在头文件中):
QStringList sort(const QStringList & a, int n);
看到你在调用.cpp文件中定义的版本时遇到错误。
in-arguments的复杂类型通常应该由const引用传递。