析构函数与构造函数对应当对潒结束其生命周期,如对象所在的函数已调用完毕时系统会自动执行析构函数。
析构函数名也应与类名相同只是在函数名前面加一个位取反符 ~,例如 ~stud( )以区别于构造函数。它不能带任何参数也没有返回值(包括void类型)。
只能有一个析构函数不能重载。
如果用户没有編写析构函数编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数并且如果洎定义了析构函数,编译器在执行时会先调用自定义的析构函数再调用合成的析构函数)它也不进行任何操作。所以许多简单的类中没囿用显式的析构函数
如果一个类中有指针,且在使用的过程中动态的申请了内存那么最好显示构造析构函数在销毁类之前,释放掉申請的内存空间避免内存泄漏。
1)派生类本身的析构函数;
2)对象成员析构函数;