我的程序似乎没有泄漏,所以对此感到很好奇。如果我已经用new初始化了一个子类QObject,并且没有给该对象提供父对象,那么它什么时候被销毁?这似乎违背了C++的规范,但是qt元编译器可能在幕后做了一些事情。

更具体地说,我在没有父对象的对象上使用QThread并使用moveToThread(线程的含义没有父对象)。当主程序完成时,线程下的对象似乎被破坏了。

最佳答案

没有生命周期管理的动态分配数据将“存活”直到应用程序终止。

如果您担心工作对象泄漏,则可以在工作完成后在它们上调用deleteLater(),并且由于它是一个插槽,因此也可以将信号连接到该插槽。

关于c++ - 动态分配何时释放QObject,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16006821/

10-10 15:53