gpt4 book ai didi

c++ - 在 QT 中关闭时从子窗口句柄中删除内存

转载 作者:行者123 更新时间:2023-11-30 01:52:07 41 4
gpt4 key购买 nike

让我们看看我的 session :

mainwindow.h
second_window.h
  1. 在类方法中保留指向 second_window 的指针 (public: second_window * h_window;)
  2. mainwindow 打开 second_window

second_window 我捕捉到 eventClose();我想在那里 delete h_window;但是我遇到了访问错误,我以为那个窗口仍然打开,所以当我尝试删除指针内存时我遇到了错误。

我应该在什么时候删除这个指针的其他想法?

最佳答案

如果您为其设置了父级,则无需删除 second_window 的对象:

h_window = new second_window(this); // in the constructor of mainwindow

当一个对象被删除并且它有子对象时,析构函数会自动删除每个子对象。因此,当删除父对象时,子对象会自动删除。

建议在堆上创建子对象并立即将它们作为父对象。如果您不立即成为 parent ,您可以使用 setParent() 函数明确地成为 parent 。

如果出于某种原因您不希望您的对象有父对象,您还可以使用QSharedPointer 来管理对象的生命周期。

关于c++ - 在 QT 中关闭时从子窗口句柄中删除内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25090776/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com