2012-04-05 6 views
0

QT 작성자의 다른 클래스에서 함수를 호출하는 데 문제가 있습니다. 여기Qt Creator는 함수를 호출합니다.

메인 클래스 mainWindow.cpp에서 I는 studentsearcher.cpp 로부터 함수를 호출하여이 사용자가 버튼을 누를 때 발생하는 함수이고, 문제는 이것이 2 다음 오류 메시지를 생성이

void MainWindow::on_FindButton1_clicked(){ 

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

함께 :

class StudentSearcher : public QDialog 
{ 
    Q_OBJECT 

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

    void search_id(int idNum); 

    ~StudentSearcher(); 

private slots: 

private: 
    Ui::StudentSearcher *ui; 
: 여기

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

는 StudentSearcher.h 파일의 일부입니다

그리고 여기가에서 함수의 정의입니다 studentSearcher.cpp

나는, 나는이 같은 꽤 바보 같은 것들을 시도했습니다 오랜 시간이 지금이 문제를 해결하기 위해 노력했습니다
void search_id(int idNum){ 
int idNumber = idNum; 

} 

: searchStudent.exec(search_id(55));

.exec()가 생성자 부분이라고 생각하기 때문에 작동하지 않을 것이라고 생각했습니다 .... 미안하지만 코딩과 QT로 약간 싫지만 ... 이 어리석은 일을하는 법을 배워라. 나는 많은 것을 시도했지만 아무 소용이 없습니다 ...

답변

4

search_id 구현은 무료 기능입니다. 당신은 멤버 함수로 만들어야합니다 :

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

안녕하세요 당신이 넣은 것으로 기능을 대체했을 때, 헤더 파일에 문제가있었습니다. 그것은 계속 다음과 같이 말했습니다 : 'search_id'회원에 대한 추가 자격 'StudentSearcher ::' – Gabe

+0

cpp 파일의 헤더와 상단에서 함수를 이전에 선언했듯이 선언해야했지만, 정의 된대로 선언되었습니다 너 한테 제안 했어. – Gabe

관련 문제