不二如是 发表于 2016-10-22 15:51:42

109-拥有权(OwnerShip)new&delete-【剧情一】

本帖最后由 不二如是 于 2016-10-22 16:16 编辑

在之前我们都用过new,然后就不管了。

为啥呢?

因为Qt最后的析构会帮我们释放,你不用去在意了。

虽然如此,但我们有义务自觉了解拥有权问题!

好了,上程序~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~











**** Hidden Message *****


static/image/hrline/1.gif



可以看到,当关闭窗口后,因为该窗口是顶层窗口,所以应用程序要销毁该窗口部件

如果不是顶层窗口,那么关闭时只是隐藏,不会被销毁哈~

而当窗口部件销毁时会自动销毁其子部件。

这也是为啥只看到new而看不到delete的原因啦~

再来看下,上面那张main.cpp()的图

    Widget w;
    w.show();

这样对于对象w,在关闭程序时会自动销毁。

而对于Widget中的部件,如果实在堆上创建(使用new操作符),那么只要指定Widget为其父窗口就可以了,不需要进行delete操作。

当整个应用程序关闭时,会自动销毁w对象,而此时又会自动销毁他的所有子部件,这些都是Qt对象树所万完成滴


ZHulk 发表于 2017-12-27 07:29:55

牛牛牛掰

ccitllz 发表于 2023-7-23 17:34:10

1

FC10086 发表于 2023-10-26 08:52:31

页: [1]
查看完整版本: 109-拥有权(OwnerShip)new&delete-【剧情一】