简单错误消息没有匹配函数用于调用

时间:2014-01-26 23:14:48

标签: c++ qt

每当我编译程序时,都会收到以下错误消息:

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)
        ...
    }

1 个答案:

答案 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引用传递。