我的程序似乎没有泄漏,所以我对此很好奇。如果我用 new 初始化了一个子类 QObject 并且我没有给对象一个父对象,那么它什么时候被销毁?它似乎违背了 C++ 的规范,但也许 qt 元编译器在幕后做了一些事情。
更具体地说,我正在使用 QThread 并在没有父对象的对象上使用 moveToThread(线程的含义强制没有父对象)。看起来线程下的对象在主程序完成时被销毁。
最佳答案
没有生命周期管理的动态分配数据将“有效”,直到应用程序终止。
如果您担心您的 worker 对象泄漏,您可以在它们的工作完成后调用 deleteLater()
,并且由于它是一个槽,您还可以将信号连接到它。
关于c++ - 何时释放动态分配的 QObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16006821/