2017-12-28 2 views
-1

나는 gui를 만들고 설명자에 데이터를 쓰는 c++에 app을 만들고 있습니다. 처음에는 _window을 만들었습니다. 내 gui의 핸들러입니다. 다음으로 나는 데이터를 쓰는 데 사용되는 객체 인 _conn을 만들었습니다. conn_window에 입력하고 싶습니다.객체의 메소드에 대한 정의되지 않은 참조

이제 버튼을 클릭 할 때 데이터를 보내려고합니다. 문제는 코드를 컴파일 할 수 없다는 것입니다. 오류가 발생합니다.

error: undefined reference to `conn::writeData(int, char*, int)' 

정말 잘못되었습니다. 이 줄에 디버깅 지점을 넣을 때 여전히 컴파일되지 않습니다. 이 행을 삭제하면 코드가 컴파일됩니다. 당신이 conn::writeData를 구현하지 않는 한 당신은 오류를 연결 한

//main.cpp 
int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow _window; 
    conn * _conn = new conn(argc, argv); 
    _window._conn = _conn; 
} 

//conn.h 
class conn 
{ 
public: 
    conn(int argc, char ** argv); 
    int sock; 
    void writeData(int fd, char * buffer, int count); 
}; 

//conn.cpp 
void writeData(int fd, char * buffer, int count){ 
    //TODO 
} 

//mainwindow.h 
public: 
    conn * _conn; 


//mainwindow.cpp 
void MainWindow::on_pushButton_clicked() 
{ 
    //_conn->writeData(_conn->sock, "hello", 5); 
} 
+2

사용자가 정의한 기능이 있어야한다. – rafix07

답변

2

:

내 코드입니다.
void writeData(int fd, char * buffer, int count){ 
    //TODO 
} 

는 writeData` CPP 파일에, 당신은 당신의 CPP 파일에 클래스`무효 통신용 멤버 함수 :: writeData`을 정의해야`

void conn::writeData(int fd, char * buffer, int count){ 
    //TODO 
} 
관련 문제