C++ 面试必考 30 题
在准备春招的过程中,我整理和分析了不少互联网公司和大厂的 C++ 技术面试题,发现有一部分问题几乎是每年都会出现的“高频题”。这些题目通常覆盖 C++ 的核心知识点,比如内存管理、面向对象、多态机制、STL 容器以及 C++11 之后的重要特性。很多面试官会通过这些问题来快速判断候选人的基础是否扎实。因此,我整理了一份 C++ 面试中比较常见、出现频率较高的 30 道题目,方便在面试前进行系统复习。
C++ 面试必考 30 题
- C++ 中
new和malloc的区别是什么? delete和free的区别是什么?- 什么是 RAII?在 C++ 中有什么作用?
- C++ 中
const的作用有哪些?const修饰不同位置有什么区别? static关键字在 C++ 中有哪些作用?- 什么是引用(Reference)?引用和指针有什么区别?
- C++ 中函数重载的原理是什么?
- 什么是拷贝构造函数?在什么情况下会被调用?
- 深拷贝和浅拷贝有什么区别?
- 为什么需要自定义拷贝构造函数和赋值运算符?
- 什么是移动语义(Move Semantics)?
std::move的作用是什么? - 左值和右值有什么区别?什么是右值引用?
- C++ 中虚函数(virtual function)的作用是什么?
- 什么是多态?C++ 是如何实现运行时多态的?
- 虚函数表(vtable)是如何工作的?
- 构造函数可以是虚函数吗?析构函数为什么经常需要声明为虚函数?
- 什么是纯虚函数?什么是抽象类?
- C++ 中继承有哪些类型?
public、protected、private继承有什么区别? - 什么是函数模板?模板和宏有什么区别?
- 模板实例化的过程是怎样的?
vector、list、deque的区别是什么?map和unordered_map的区别是什么?- C++ 中
inline关键字的作用是什么? - 什么是智能指针?
unique_ptr、shared_ptr、weak_ptr有什么区别? shared_ptr是如何实现引用计数的?可能会出现什么问题?- 什么是内存泄漏?在 C++ 中如何避免?
- C++ 中异常处理机制是怎样的?
try、catch、throw的工作流程是什么? - 什么是 Lambda 表达式?基本语法和捕获列表是什么?
- 什么是线程安全?C++ 中如何实现线程同步?
- C++11 相比旧版本引入了哪些重要特性?
C++面试常考题目类型都放入了专栏了:https://www.nowcoder.com/creation/manager/columnDetail/Mq7XWW
春招准备建议
春招的准备通常时间比较紧张,因此更重要的是高效复习和系统梳理知识体系。如果是 C++ 方向的岗位,可以重点从以下几个方面进行准备。
第一,系统梳理 C++ 核心知识体系。很多面试题其实都集中在几个核心模块,例如:
- C++ 基础语法(指针、引用、const、static)
- 面向对象(封装、继承、多态、虚函数)
- 内存管理(new/delete、RAII、智能指针)
- STL 容器与算法(vector、map、unordered_map 等)
- 现代 C++ 特性(C++11/14/17)
- 多线程与并发(mutex、atomic、线程同步)
建议把这些知识点整理成自己的知识笔记或思维导图,这样在复习时能够形成完整的框架,而不是零散记忆。
第二,多做面试高频题,总结“八股题库”。技术面试中有不少问题是高频重复出现的,比如虚函数、多态、智能指针、STL 容器等。可以整理一份属于自己的高频面试题清单,每天抽时间进行复习,并尝试用自己的语言完整讲一遍,这样在面试时会更加流畅。
第三,结合项目经验进行准备。很多面试官在问完基础知识后,都会进一步追问:
- 项目中使用了哪些 C++ 特性
- 如何设计类结构
- 是否使用过 STL 或多线程
- 有没有遇到过内存问题或性能问题
因此在准备面试时,一定要提前把自己的项目重新梳理一遍,例如:
- 项目的整体架构
- 自己负责的模块
- 使用到的关键技术
- 遇到的问题以及解决方案
这样在面试中不仅能回答理论问题,还能结合实践经验进行说明。
第四,适当练习算法和代码能力。部分公司在 C++ 技术面试中还会加入算法或代码题,例如链表、二叉树、排序、动态规划等。建议每天保持一定量的练习,例如在算法平台上做几道经典题目,重点提升代码熟练度和思路表达能力。
第五,模拟面试,提高表达能力。很多同学其实知识掌握得不错,但在面试中容易紧张或者表达不清。可以尝试:
- 和同学互相模拟面试
- 对着电脑或手机讲解知识点
- 练习用结构化方式回答问题
例如回答问题时可以按照概念 → 原理 → 优缺点 → 使用场景的方式展开,这样逻辑会更加清晰。
总体来说,春招准备的关键在于打牢基础、总结高频题、强化项目经验、提升表达能力。只要提前做好系统复习,并多进行几次模拟面试,在真正的技术面试中就会更加从容。