0

我有以下代码设置-

在文件testthread.h

class test_thread :public QThread
{
    Q_OBJECT
public:
    void start();
};

在 cpp 文件中

test_thread *t = new test_thread;
t->start();

执行上述代码时,出现错误-

error: undefined reference to test_thread::start()

我不明白出了什么问题。调用 QThread 对象的 start() 方法不会显示任何错误,但是当我将 QThread 子类化时,它会显示。任何关于这方面的帮助或建议都会很棒!

谢谢 :)

4

1 回答 1

2

您需要void start();从头文件中删除。如果源文件中有start实现,您也需要将其删除。start方法不应该被重新实现。

您可能想要重新实现run虚拟方法。如果是这样,请添加void run()到标头并test_thread::run() { ... }在源文件中添加适当的实现。

请注意,QThread在大多数情况下不应子类化。

于 2013-07-05T06:00:18.013 回答