析构函数是与构造函数相对应的成员函数,主要负责在对象撤销时对空间的回收。
析构函数的特点是:
1 析构函数名为本类类名前加一个“~”符号;
2 析构函数不允许有任何返回类型,void也不行;
3 析构函数没有任何参数。每个类中只
有一个析构函数,即不能重载析构函数。
4 撤销对象时,编译系统会自动地调用析构函数。
析构函数的调用时机:
①遇到主函数结束(或调用exit函数)、函数被调用结束(对象在函数体内),自动调用析构函数;
②在执行 delete 时调用析构函数。
析构函数调用次序,与建立对象时相反。
若用户没有定义析构函数,编译程序将自动生成一个函数体为空的析构函数,它将释放除了用new运算所分配的任何对象的存储空间。
#include<iostream>
using namespace std;
class zll{
public:
zll(){
a1=0;
a2=0;
}
zll(int i,int j){
a1=i;
a2=j;
cout<<" 构造函数"<<endl;
}
void printfs(){
cout<<a1<<"---"<<a2<<endl;
}
~zll(){
cout<<a1<<" 析构函数"<<endl;
}
private:
int a1,a2;
};
int main(){
zll x,y(2,3);
x.printfs();
y.printfs();
return 0;
}