析构函数
自定义析构函数
一、析构函数
析构函数(destructor) 与构造函数相反,当对象生命周期结束时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new malloc开辟了一片内存空间,应在退出前在析构函数中用delete,free释放)。
二、自定义析构函数
在前边的课程里,我们调用的都是默认的析构函数。
析构函数与构造函数不同,因为它没有返回值,也没有形参。所以决定了它只有且仅有一个析造函数存在。
析构函数定义如下
类名::~类名()
Tdate::~Tdate()
//date.h
Tdate::~Tdate(void);//自定义析构函数
//date.cpp
Tdate::~Tdate(void)
{
printf("进入析构函数\n");
delete n;//清理工作
}
//helloc++.cpp
int test2()
{
Tdate d(1999,1,11);
return d.year;
}
int _tmain(int argc, _TCHAR* argv[])
{
Tdate s2;
test2();
//test2.d对象生命周期结束
getchar();
return 0;
}