C++析构函数面试题(基础+进阶+详细真题答案).docxVIP

  • 1
  • 0
  • 约3.13千字
  • 约 6页
  • 2026-10-11 发布于河北
  • 举报

C++析构函数面试题(基础+进阶+详细真题答案).docx

C++析构函数面试题(基础+进阶+详细真题答案)

说明:所有题目均为后端/客户端C++面试高频原题,答案通俗易懂、贴合面试官打分标准,无书面化空话,适配校招、社招面试场景。

一、基础概念题(必问)

1、什么是析构函数?它的作用是什么?

参考答案:

析构函数是类中特殊的成员函数,和构造函数成对出现,函数名和类名相同,前面加波浪号~,没有返回值、没有参数,且不能重载。

它的核心作用是:在对象销毁时,自动释放对象占用的资源。

主要处理两类资源释放:

1)堆内存资源:构造函数中new出来的内存,必须在析构函数中delete,避免内存泄漏;

2)系统资源:打开的文件句柄、网络套接字、锁资源、动态申请的缓冲区等,防止资源占用不释放。

对象生命周期结束时,系统会自动调用析构函数,无需手动调用。

2、析构函数的特点有哪些?(面试高频简答题)

参考答案:

1)函数名固定:~类名,无返回值、无参数,不支持函数重载;

2)自动执行:对象销毁时由系统自动调用,程序正常结束、对象出作用域、delete堆对象都会触发;

3)一个类只能有一个析构函数,不存在多个析构函数的情况;

4)如果类中没有手动定义析构函数,编译器会自动生成一个默认析构函数,默认析构函数只会简单销毁成员变量,不会释放堆内存;

5)析构函数的调用顺序和构造函数相反:先构造的后析构,后构造的先析构。

3、默认析构函数和自定义析构函数的区别?

文档评论(0)

1亿VIP精品文档

相关文档