调用时间:
1、对象生命周期结束,被销毁时;
2、delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是虚函数时;
3、对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。
C++当中的析构函数格式如下:
如以下定义是合法的:
当程序中没有析构函数时,系统会自动生成以下析构函数:
<类名>::~<类名>(){},即不执行任何操作。
下面通过一个例子来说明一下析构函数的作用:
最后输出:析构函数被调用。
cin.get() 表示从键盘读入一个字符,为了让我们能够看得清楚结果。当然,析构函数也可以显式的调用,如 (*t).~T(); 也是合法的。