总的来说构造函数和析构函数外观上唯一的区别就是析构函数前需要加波形符(~),定义方式和构造函数一样,都是类名定义。
为什么需要使用析构函数?
在构造函数中做了一些初始化工作,如果不使用析构函数,可能会造成内存泄漏。比如在堆上分配了内存空间,也要手动的释放。手动释放后,声明的对象手动释放。
手动去使用析构函数比较奇怪,唯一解释就是,在使用new 进行内存分配(也就是使用堆空间的时候),删除的时候使用free函数。
总的来说构造函数和析构函数外观上唯一的区别就是析构函数前需要加波形符(~),定义方式和构造函数一样,都是类名定义。
为什么需要使用析构函数?
在构造函数中做了一些初始化工作,如果不使用析构函数,可能会造成内存泄漏。比如在堆上分配了内存空间,也要手动的释放。手动释放后,声明的对象手动释放。
手动去使用析构函数比较奇怪,唯一解释就是,在使用new 进行内存分配(也就是使用堆空间的时候),删除的时候使用free函数。