和类同名,没有参数
~类名();
~STUDENT();
#ifndef __STUDENT_H__
#define __STUDENT_H__
class STUDENT
{
private:
int nID;
int nAge;
const char *pName;
public:
STUDENT();
STUDENT(int ID, int Age, const char *pStr);
~STUDENT();
char * GetName(void);
int GetID(void);
void SetID(int ID);
void SetName(const char *pStr);
};
#endif
当一个对象"过期的时候",系统便会自动调用析构函数完成清理工作,如果构造函数使用new来分配内存,那么析构函数使用delete来释放内存,上述STUDENT类中没有new,所以析构函数什么也不做
通常不应该在代码中显式调用析构函数
何时调用
①如果对象是通过new来分配的,可能分配在栈中或者堆中,当使用delete来释放内存时,其析构函数才被调用
②如果在代码块中,那么当超出这个代码块,则调用
③自动存储类别 程序结束时调用