析构函数在何时调用?

2024-12-01 07:21:30
推荐回答(1个)
回答1:

调用时间:

1、对象生命周期结束,被销毁时;

2、delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是虚函数时;

3、对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。

C++当中的析构函数格式如下:

如以下定义是合法的:

当程序中没有析构函数时,系统会自动生成以下析构函数:

<类名>::~<类名>(){},即不执行任何操作。

下面通过一个例子来说明一下析构函数的作用:

最后输出:析构函数被调用。

cin.get() 表示从键盘读入一个字符,为了让我们能够看得清楚结果。当然,析构函数也可以显式的调用,如 (*t).~T(); 也是合法的。