首页| 论坛| 消息

回复: 请问什么情况下自己new了一个组件,而不需要自己delete??
#6 [waitforgod 03-31 20:38]
请问如果在new一个组件是并没有把parent的指针给他,当parent结束时,能不能析构这个组件???
例如:QPushButton *quit = new QPushButton(tr("&Quit")); 并没有把this指针给quit。
#7 [weilink 04-03 21:46]
所有继承自QObject的类,如果构造的时候指定了parent(同样继承自QObject),当parent析构的时候,所有以其为parent的child都会自动析构,不需要显式delete。如果不指定parent,不能自动析构,必须显示调用delete,否则会有内存泄漏
#8 [waitforgod 04-04 16:56]
楼上的意思是说,例如:“QPushButton *quit = new QPushButton(tr("&Quit"));”的new语句,因为没有将parent的指针传入,所以将有内存泄漏?
但这个例子是qt4 tutorial中的例子,难道tutorial有错??
#9 [cocalele 04-04 17:28]
把Button添加到其他窗口中时这个Button的父对象就被改成这个窗口了。窗口析构时Button也就析构了

<< 1 2 >> (2/2)

回复 发表
主题 版块