职位题库

C++开发工程师面试题库

面向C++开发工程师相关面试,围绕C++、内存管理、智能指针、系统设计、性能优化等主题展开练习,结合题目考察点、回答思路、参考答案和常见误区,梳理知识要点并练习清晰表达。

105 道题目建议用时 315 分钟专项面试练习

全部题目 105 道题

25

请解释纯虚函数的作用,以及什么时候需要纯虚析构函数?

考察对C++多态机制和资源管理的理解,特别是纯虚函数在接口设计中的作用,以及虚析构函数在避免内存泄漏中的必要性。
26

请说明C++中各类变量(如全局变量、局部变量、静态变量等)分别存储在内存的哪个分区?

考察对C++程序内存布局的理解,包括栈、堆、全局/静态存储区、常量存储区等。
27

请解释深拷贝和浅拷贝的区别,以及什么时候需要自己写拷贝构造函数?

考察对对象拷贝语义的理解,特别是当类管理动态资源时,默认拷贝构造函数的问题。
28

请解释缓存一致性协议、store buffer和内存序的概念及其关系。

考察对多核CPU缓存一致性、内存屏障和内存序的理解,这是高性能并发编程的基础。
29

请先做一下自我介绍

考察候选人的表达能力、技术背景与岗位匹配度,快速了解其项目经验和技术栈。
30

你在开发中遇到过最难定位的一类问题是什么?最后是如何缩小范围的?

考察候选人在真实开发中定位复杂问题的思路、工具使用和系统性排查能力,而非仅凭经验猜测。
31

C++ 程序发生崩溃时,你会如何分析一份 core 文件?

考察候选人对 core 文件分析流程的掌握程度,包括版本一致性、线程栈查看、寄存器与变量检查,以及复杂问题的延伸排查。
32

如果一个 C++ 服务运行数小时后内存持续上涨,你会怎样判断是否存在泄漏?

考察候选人对内存上涨问题的系统性分析能力,能否区分泄漏、缓存、分配器行为等不同原因,并给出合理的排查工具和指标。
33

如何设计一个支持超时、取消和重试的异步任务框架?

考察候选人对异步任务状态管理、取消机制、重试策略和幂等性的设计能力。
34

数据库查询已经建立索引,但性能仍然不稳定,你会检查哪些因素?

考察候选人对索引使用、执行计划、统计信息和并发因素的综合分析能力。
35

请做一下自我介绍。

考察候选人的表达能力、对自身经历的总结能力,以及是否能在短时间内突出与岗位相关的亮点。
36

项目是自己玩的,还是实验室的,还是怎么的?项目的级别是什么?

考察候选人项目的来源、规模、复杂度以及个人参与程度,判断项目经验的真实性和含金量。
返回面试题库