对对象方法的未定义引用[重复]

问题描述 投票:-1回答:1

我正在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);
}
c++ qt
1个回答
2
投票

由于未实现conn::writeData,因此存在链接错误。

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

应该

void conn::writeData(int fd, char * buffer, int count){
    //TODO
}
© www.soinside.com 2019 - 2024. All rights reserved.