析构函数
析构函数的功能是用来释放一个对象,在对象删除前,用它做一些内存释放等收尾工作。
- 一个类只能定义一个析构函数
- 析构函数不能重载
- 析构函数和构造函数一样不能加return , 也不用加关键字void
语法
析构函数名标识符就是在类名标识符符号前面加 ~ 符号
// PERSON.h 头文件
#pragma once
class PERSON
{
public:
short Age;
char* Name;
PERSON(short Age , char *Name);
PERSON(PERSON& copyPERSON);
~PERSON();
};
构造函数和析构函数的调用环境
- 自动变量的作用域是某个模块,当此模块被激活时,自动变量调用构造函数,退出此模块则会调用析构函数。
- 全局变量在进入main函数之前会调用构造函数,在程序终止时会调用析构函数。
- 动态分配的对象在使用new为对象分配内存时会调用构造函数,使用delete删除对象时会调用析构函数。
- 临时变量由编译器自动产生是为了支持计算,所以临时变量的生存期的开始和结尾会调用构造函数和析构函数。