我们知道,在C++中,堆用于动态内存的分配,一般由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。
在C++中主要利用new在堆区开辟空间。
并且我们知道,当使用完对象之后,如果不及时释放,将会导致内存泄漏,由此可能会导致安全问题。
那么在Qt中,当我们通过new关键字创建对象并开辟了动态空间之后,当使用完该对象之后,是不是还要手动的调用析构函数来进行动态空间释放呢?
在Qt内部会根据我们创建的对象和指定的父对象而建立对象树
建立完这样的对象树之后,当程序结束的时候,会自动的从底层往上回收。
验证过程省略。
总结:
子对象如果是(new)动态分配空间的,在
1、指定父对象之后,
2、直接或间接继承于Object
不需要手动释放(delete),系统会自动释放