首页| 论坛| 消息

标题:【提问】请问qt中的所有qobject是不是自动托管呢
作者:windytwang
日期:2006-03-11 17:20
内容:

就是类似c#中的垃圾回收
也即是QPushButton *button = new QPushButton;后
不需要对button进行delete操作,在超出它的作用域后将自动delete
我试了一下,好像对所有的qt自己的类,以及自己继承于它的类,都会自动析构。
但是在帮助文件中并没看到有提到这一点,不知道各位是怎么看的?


#1 [XChinux 03-11 17:36]
不是的。C# 中,一般来说new的对象不用自己担心删除,反正它会删除,只注意生存期就行了。
但C++中不是这样,以Qt的支持来说,new了一个A,同时指定其parent为B,这样在B析构的时候能找到A而对其进行析构,当然,自己来delete A也可以。但如果new的时候没有指定parent,那么就没人管它,在跳出指针作用域后,我们就找不到其地址了,怎么来delete??
#2 [windytwang 03-11 18:11]
谢谢。
那如果全是继承于qt的类,都有parent了的话,那么就不用自己去delete了吧?
#3 [XChinux 03-11 18:17]
看自己的需要而定,况且也并不是所有的类都有parent
先学Java和C#,再转过头来学C++,容易把不delete的习惯带进来,并不是什么好事情。
#4 [nanhu_007 03-11 23:53]
有parent时候就不需要自己delete
#5 [windytwang 03-12 00:12]
谢谢

<< 1 2 >> (1/2)

回复 发表
主题 版块