推荐答案
在C++中,析构函数(destructor)是一个特殊的成员函数,用于在对象生命周期结束时自动执行清理工作。析构函数的名称与类名相同,但前面加上一个波浪号(~
)。析构函数没有参数,也没有返回值。
-- -------------------- ---- ------- ----- ------- - ------- --------- - -- ---- - ---------- - -- ---- - --
本题详细解读
析构函数的作用
析构函数的主要作用是释放对象在生命周期内占用的资源,例如动态分配的内存、文件句柄、网络连接等。当对象超出其作用域或被显式删除时,析构函数会自动调用。
析构函数的调用时机
- 局部对象:当局部对象超出其作用域时,析构函数会自动调用。
- 动态分配的对象:当使用
delete
操作符删除动态分配的对象时,析构函数会被调用。 - 全局或静态对象:当程序结束时,全局或静态对象的析构函数会被调用。
析构函数的特性
- 无参数:析构函数不能接受任何参数。
- 无返回值:析构函数没有返回值。
- 不可重载:每个类只能有一个析构函数。
- 自动调用:析构函数在对象销毁时自动调用,程序员通常不需要显式调用它。
示例代码
-- -------------------- ---- ------- -------- ---------- ----- ------- - ------- --------- - --------- -- ------------ -------- -- ---------- - ---------- - --------- -- ----------- -------- -- ---------- - -- --- ------ - ------- ---- -- ------- -- --- -------------- ------ -- -
在这个示例中,当obj
超出其作用域时,析构函数会自动调用,输出"Destructor called!"
。