C++ 面试题 目录

C++ 中什么是析构函数 (destructor)?

推荐答案

在C++中,析构函数(destructor)是一个特殊的成员函数,用于在对象生命周期结束时自动执行清理工作。析构函数的名称与类名相同,但前面加上一个波浪号(~)。析构函数没有参数,也没有返回值。

-- -------------------- ---- -------
----- ------- -
-------
    --------- -
        -- ----
    -

    ---------- -
        -- ----
    -
--

本题详细解读

析构函数的作用

析构函数的主要作用是释放对象在生命周期内占用的资源,例如动态分配的内存、文件句柄、网络连接等。当对象超出其作用域或被显式删除时,析构函数会自动调用。

析构函数的调用时机

  1. 局部对象:当局部对象超出其作用域时,析构函数会自动调用。
  2. 动态分配的对象:当使用delete操作符删除动态分配的对象时,析构函数会被调用。
  3. 全局或静态对象:当程序结束时,全局或静态对象的析构函数会被调用。

析构函数的特性

  • 无参数:析构函数不能接受任何参数。
  • 无返回值:析构函数没有返回值。
  • 不可重载:每个类只能有一个析构函数。
  • 自动调用:析构函数在对象销毁时自动调用,程序员通常不需要显式调用它。

示例代码

-- -------------------- ---- -------
-------- ----------

----- ------- -
-------
    --------- -
        --------- -- ------------ -------- -- ----------
    -

    ---------- -
        --------- -- ----------- -------- -- ----------
    -
--

--- ------ -
    ------- ---- -- -------
    -- --- --------------
    ------ --
-

在这个示例中,当obj超出其作用域时,析构函数会自动调用,输出"Destructor called!"

纠错
反馈