新的概念:析构函数
回忆:构造函数的作用:初始化变量(为变量分配空间)
新知:析构函数的作用:销毁变量(释放变量占用的空间)
析构函数的特征
- 命名方式:~<类名>
- 无返回类型(void)也没有(类似构造函数)
- 没有参数,因此不能被重载
- 没有明显定义时,系统调用默认析构函数
- 何时调用析构函数?当对象的生命周期结束时
示例要求:
- 定义 IntArray 类,要求根据需要确定数组的规模
- 默认数组的规模为10个元素
- 可以显示数组的规模信息
#include <iostream>
using namespace std;
class IntArray
{
public:
IntArray(int sz) //有参构造函数
{
m_size=sz;
m_ptr=new int[sz];
}
IntArray() //无参构造函数
{
m_size=10;
m_ptr=new int[m_size];
}
void displayArraySize() //显示数组信息
{
cout<<"The size of this array is:"<<m_size<<endl;
}
~IntArray() //析构函数
{
cout<<"Destructing Array with size"<<m_size<<endl;
delete []m_ptr; //收回占用的空间
}
private:
int m_size;
int *m_ptr;
};
int main
{
IntArray a(20),b;
a.displayArraySize();
b.displayArraySize();
return 0;
}