后端校招 | 高频 C++ 面试题整理

🎯 一、为什么专门做一期 C++ 面试题分享?

其实很多后端同学在面试准备时都有发现一个问题即

  • Java 岗位题资源非常多

  • 但 C++ 后端面试内容分散、缺少整合

所以我整理了 GitHub 上高频 C++ 后端面试题 + 答案解析,今天精选 5 道拆解给大家看

🔍 二、精选高频 C++ 面试题答题技巧

1. new 和 malloc 的区别?

特性 new malloc
返回类型 指定类型指针 void*
构造函数 会调用构造函数 不会调用
释放方式 delete free
重载支持 支持重载 不支持
异常处理 分配失败抛异常 返回 NULL

🔹 答题建议: 不要只背表格,重点突出:“new 是操作符,支持构造/析构函数;malloc 是函数,只负责内存分配。”

2. 虚函数表机制(vtable)是怎么实现的?

  • 编译器为每个有虚函数的类生成一个虚函数表(vtable)

  • 每个对象包含一个指向该类虚函数表的指针(vptr)

  • 虚函数调用时,通过 vptr 查找 vtable 中对应函数地址,进行动态绑定

🔹 答题建议: 可配合画图说明 Base* p = new Derived(); 时如何通过 vptr 调用 Derived 的虚函数。

3. C++11 中 std::move 和右值引用的作用?

std::move 不是移动函数,而是 将左值转换为右值引用

搭配右值引用,实现 资源的所有权转移

可避免不必要的深拷贝,提高性能(如返回大型对象、容器优化)

🔹 示例:

std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1);  // v1 的资源“偷”给了 v2

4. 内存对齐规则 + 字节对齐面试陷阱

面试官问:“一个结构体如下所示,sizeof 是多少?”

struct A {
  char a;
  int b;
  char c;
};
  • sizeof(A) 是 12,因为会有字节对齐填充字节

  • 答题时要讲:按最大成员对齐 + 编译器对齐限制

🔹 建议配合图示解释每个字段的起始位置,展示你真的理解了原理。

5. 智能指针 shared_ptr vs unique_ptr 区别

类型 是否共享所有权 支持复制? 场景
unique_ptr ❌ 仅一个拥有者 ❌ 不可复制 独占资源管理,如文件句柄
shared_ptr ✅ 多个共享 ✅ 可复制 多方共享数据,如缓存池

🔹 答题建议: 强调生命周期管理、引用计数机制、循环引用陷阱(可联讲 weak_ptr)

🎁 GitHub 面试题项目推荐

我把这些 C++ 面试题 + 操作系统 + Redis + 数据库等内容,整理成了一个开源项目:

📘 项目地址: 👉 0voice/Campus_recruitment_interview_questions

✨ 项目亮点:

✅ 每道 C++ 高频题都有详细答案和笔记

✅ 支持一键搜索你想复习的知识点

✅ 包含腾讯、字节、阿里真实面经+题目

alt

持续更新维护中,欢迎 star ⭐

#面试题##面经##大厂##秋招##应届生#
全部评论

相关推荐

头像
07-21 17:34
湖南大学 安卓
有一次朋友看完演唱会回来,激动之余那几天一直在给我安利各种歌手,评价各种歌手,推荐薛之谦,周杰伦。他说你刚开始可能会很喜欢薛之谦,但等你真正成熟之后才会明白周杰伦才是华语乐坛的神。那几天总是在给我推荐,分析,我实在是不感兴趣,说实话,我其实对周杰伦并不感冒,并不否认周杰伦有几首歌陪伴我长大,《稻香》《夜曲》……但是我也只听这几首,其他的歌曲实在是不喜欢,感觉他大部分的歌都很淡,像大白话诉说一样,没有高潮,整个基调很平稳,有的时候不看歌词都不知道他在唱什么,让人唱不起来。他觉得周杰伦作词作曲唱功都很厉害,我觉得他是为情怀买单,个人并不认同,我希望他尊重我的想法,但是他更急了,非得一顿解释,文字说不清还给我打电话,就是一定要让我感受到周杰伦的魅力,喜欢上周杰伦。他说周杰伦的歌听百遍都不会觉得腻,越听越有味道,越听越觉得歌词优美,唱功高绝,但是目前的我确实get不到周杰伦的点,他说周杰伦封神那几年,各大影视会员都是他的歌,常年霸占热搜榜第一,专辑都卖火了,他的歌火遍大江南北,陪伴了很多人的青春,尤其是现在开一场演唱会,一票难求,更是带动一个城市的GDP。最后他说你越听越喜欢,越长大,年龄越大越喜欢周杰伦。我说:萝卜白菜各有所爱,尊重不同理解不同!
牛友故事会
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务