未定义的对象方法

时间:2017-12-28 19:50:05

标签: c++ qt

我在c++创建应用程序,它正在创建gui并将数据写入描述符。起初我创建了_window,这是我的gui的处理程序。接下来,我创建了_conn,它是用于写入数据的对象。我希望conn中有_window,所以我分配了它。

现在,我想在点击按钮时发送一些数据。问题是我甚至无法编译代码 - 我收到错误:

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

真的不知道出了什么问题。当我把调试点放在这一行时,它仍然没有编译。当我删除这一行时 - 代码正在编译。

这是我的代码:

//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);
}

1 个答案:

答案 0 :(得分:2)

由于您未实施conn::writeData,因此存在关联错误。

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

应该是

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