比如说你定义了一个类A, 有一个成员对象是char * arrayMember;他是一个指针,然后你定义一个A的对象 A a;使用它的arrayMember去new一块内存进行应用,然后在你收回a的内存的时候,如果不使用析构函数,你只会收回arrayMember所占的4字节内存空间,而它所指向的那段new出来的那块内存就不会被回收, 析构函数所谓的清理就是帮助回收类似这样和a对象有依赖关系的内存空间,或者其他因为a的消失会跑飞的一些资源。
对象内存的回收只是意味着这个对象的成员函数 成员变量 以及其他这个对象所占有的内存的删除回收;而它所管理或者有依赖关系的一些资源的回收需要在析构函数里面进行,否则对象没了,就寻找不到他们了,他们就会成为默默存在却永远不会被使用的资源。
上述对于析构函数的理解来自百度知道,作为初学者在网上见到这种解释,感动到我来记录下来。