析构函数
析构函数是作用于对象销毁工作,清空对象内部指针指向的堆区内存。析构函数是在释放对象的时候自动调用,栈区对象自动释放。
析构函数语法
- 没有返回值:~类名(){}
- 函数名称与类名相同但是前面要有~
- 析构函数不可以有参数,因此不可以发生重载
- 编译器在对象销毁前会自动调用析构函数,不需要手动调用
#include<iostream>
#include<vector>
using namespace std;
class A
{
public:
int* p;
A(int N)
{
p = (int*)malloc(N);
cout << "申请了N个字节" << endl;
}
~A()
{
if (p != NULL) free(p); //释放成员变量指向的堆区内存
cout << "析构函数" << endl;
}
};
int main()
{
A a(40);
return 0;
}