C++中对象指针的问题,将一个指针A指向的对象附加到另一个对象B后,指针A指向的对象是否需要手动释放?

2024-11-29 02:39:46
推荐回答(2个)
回答(1):

button对象和vlayout对象都是用new建立的,都需要用delete来释放,否则会有内存泄露的。在**的下一行加上delete button,之所以会运行时错误,应该是因为**那一行把button添加到布局对象中之后,布局对象会一直使用button对象,而你却把button对象的内存空间释放掉了,这样当然会出现运行时错误。new申请的对象的生命周期是在整个程序的运行期间,所以可以在循环体外面释放button对象,button对象最好的释放时机应该是需要释放vlayout对象时,vlayout还在使用时就释放button对象,当然会出错。

回答(2):

如果该对象是new出来的,当然需要