2014-01-26 15 views
1

我得到一個錯誤信息:每當我編譯我的程序簡單的錯誤信息沒有匹配函數調用

no matching function for call to 'MainWindow::sort(QStringList&, int&)' 
    sort(listt,x); 

我也宣告了排序功能在我的頭公衆。這可能是一個非常簡單的錯誤,原諒我在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) 
     ... 
    } 

回答

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引用傳遞。

+1

這給出了一個錯誤:「...的原型與任何類中的不匹配'MainWindow' – user3183403

+0

因爲int n沒有被定義爲頭文件中的參數,所以從聲明中刪除它或將其添加到頭中。 –

+1

謝謝你的工作! – user3183403

相關問題