析构函数

和类同名,没有参数

~类名();
~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来释放内存时,其析构函数才被调用
②如果在代码块中,那么当超出这个代码块,则调用
③自动存储类别 程序结束时调用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值