2012-04-05 17 views
0

Ich habe ein Problem mit dem Aufruf einer Funktion in einer anderen Klasse in QT Creator.Qt Creator, rufen Sie eine Funktion

Hier in der Hauptklasse mainWindow.cpp, rufe ich eine Funktion aus studentsearcher.cpp Dies ist eine Funktion, was geschieht, wenn der Benutzer Taste drückt, und das Problem ist mit diesem

void MainWindow::on_FindButton1_clicked(){ 

     StudentSearcher searchStudent; 
     searchStudent.exec(); 
     searchStudent.search_id(55); // <---- the problem 
} 

Daraus ergeben sich die zwei folgenden Fehlermeldungen :

1.undefined reference to StudentSearcher::search_id(int) 
2.collect2: ld returned 1 exit status 

Hier Teil der StudentSearcher.h Datei ist:

class StudentSearcher : public QDialog 
{ 
    Q_OBJECT 

public: 
    explicit StudentSearcher(QWidget *parent = 0); 

    void search_id(int idNum); 

    ~StudentSearcher(); 

private slots: 

private: 
    Ui::StudentSearcher *ui; 

Und hier ist die Definition der Funktion in der studentSearcher.cpp

void search_id(int idNum){ 
int idNumber = idNum; 

} 

Ich habe versucht, dies nun für eine lange Zeit zu beheben, habe ich wie dies einige ziemlich dumme Dinge ausprobiert: searchStudent.exec(search_id(55));

Und dachte, es würde nicht funktionieren, weil ich denke, dass die .exec() ist der Konstruktor Teil .... Sorry, ich bin ein bisschen nooby mit Codierung und QT aber ... Ich kann nicht scheinen scheinen heraus, wie man dieses blöde Ding zur Arbeit bringt. Ich habe viele Dinge ausprobiert, aber ohne Erfolg ...

Antwort

4

Ihre Search_id-Implementierung ist eine kostenlose Funktion. Sie müssen es eine Member-Funktion machen:

void StudentSearcher::search_id(int idNum){ 
    int idNumber = idNum; 
} 
+0

Hey, als ich die Funktion mit dem, was Sie setzen, ersetzte, hatte es ein Problem mit der Header-Datei. Es hat immer gesagt: Extra Qualifikation 'StudentSearcher ::' auf Mitglied 'search_id' – Gabe

+0

Fixed es, in der Kopfzeile und oben in der cpp-Datei musste die Funktion deklariert werden, wie ich es früher hatte, aber in der Definition wurde es erklärt wie du es vorgeschlagen hast. – Gabe