C++

精通预计深耕 6 个月+

星团 编程语言

学习定位零前置,可直接入门→ C++ →学完本技能可衔接的下游技能建设中

岗位需求

1 核心 · 0 加分

在职岗位将其列为技能要求

核心岗位薪资带

28k-60k

核心要求岗位的月薪区间

需求趋势

上升 0稳定 1收缩 0

核心要求岗位的趋势分布

面试题库

高频真题 · 参考答案随题展开
1. 智能指针 unique_ptr、shared_ptr、weak_ptr 各适用什么场景?

unique_ptr 表达独占所有权,零开销抽象(大小等于裸指针,默认删除器下),不能拷贝只能移动,函数传参用值或引用皆可,是默认选择,数组特化会正确调用 delete[]。shared_ptr 用控制块里的原子引用计数实现共享所有权,拷贝增减计数,归零释放对象,代价是原子操作开销与控制块内存;make_shared 一次分配对象加控制块更高效且异常安全;循环引用(A 持 B、B 持 A)导致永不归零,需把回边换成 weak_ptr。weak_ptr 观察不拥有,lock() 尝试升级为 shared_ptr 处理缓存与观察者场景。线程安全性要分清:计数原子安全,指向的对象本身仍需自行同步。答出默认 unique、跨所有权共享 shared、破环 weak 三句结论即佳。

2. 什么是 RAII?为什么它是 C++ 资源管理的核心?

RAII 指把资源(内存、文件句柄、锁、连接)的生命周期绑定到栈对象:构造获取、析构释放,资源管理变成类型问题而非流程问题。收益是异常安全——栈展开时局部对象析构自动执行,不会泄漏;是无差错早退——多处 return 都走同一析构路径;是作用域即文档。标准库实例:智能指针管内存、lock_guard 管锁、fstream 与 jthread 管句柄与线程。手写时遵循三法则或五法则(析构、拷贝构造、拷贝赋值,加移动构造与移动赋值),或 rule of zero 直接用值与智能指针成员避免手写。对比 Go 的 defer 与 Java 的 try-with-resources,RAII 由作用域自动触发且零抽象成本。答出异常安全论证与三/五法则即完整。

3. 移动语义与完美转发解决什么问题?

移动语义让资源(堆内存、句柄)的所有权可被「窃取」而非深拷贝:右值引用 T 与对左值的 std::move 强转为将亡值,vector 扩容时移动元素只搬指针不搬数据,性能质变;noexcept 的移动构造还让容器敢于移动,否则退回拷贝。完美转发解决参数透传时的值类别保持:模板参数 T 与万能引用(T 加对右值引用折叠)推导出左值或右值,再用 std::forward 小于 T 大于 恢复原始类别,使包装函数(emplace、make_shared)把参数原样转给构造器。注意区分 std::move 只是转换不移动任何东西,被移动对象处于有效未指定状态只能重新赋值或析构。答出右值与将亡值概念、折叠规则示例(传 int 与 int 均可)即优秀。

4. 虚函数表机制与对象内存布局是怎样的?

含虚函数的类对象头部藏一个 vptr 指向该类的虚函数表 vtable,表内是各虚函数的实际地址加 RTTI、偏移信息。调用 p 等于 f() 编译为通过 vptr 查表间接调用,一次额外间接带来动态多态;单继承下基类子对象在前,派生类只增不改虚表布局;多继承有多个 vptr 与 thunk 调整 this;虚继承引入虚基表解决菱形公共基类多副本。构造顺序基类到派生类,构造期间虚表尚未指向最终覆盖版本,故构造函数内虚调用不多态;析构必须虚函数,否则经基类指针 delete 派生对象是未定义行为,纯虚析构还要给定义。成本上每类一张表、每对象一个指针,且妨碍内联。能画出单继承内存图并解释构造期与析构虚表状态即满分。

5. STL 容器如何选型?迭代器失效规则要注意什么?

连续内存的 vector 随机访问 O(1)、尾部摊还 O(1),缓存最优,是默认选择,中间插删 O(n);deque 两端摊还 O(1) 但分段存储;list 双向链表任意位置 O(1) 插删但访问 O(n)、缓存差,list 加 forward_list 适用频率极低;关联容器有序 map 与 set 基于红黑树 O(log n) 有序遍历;unordered 系哈希桶平均 O(1) 无序。字符串 sso 小字符串优化避免堆分配。迭代器失效是高频坑:vector 扩容使全部失效,中间 erase 使其后失效,删除用 it 等于 erase(it) 接住返回值;unordered rehash 使迭代器失效但引用仍有效;list 与 map 仅被删节点失效。multi 系与透明比较器(C++14 起 find 泛型查找)是延伸点。答出默认 vector 加失效规则细节即佳。

🔒 解锁完整面试题库与参考答案(Pro)

含高频追问与作答要点,系统准备面试。

官方文档

2 条

推荐教程

2 条

推荐课程

0 条

待共建——资源由编辑部持续遴选补充。

上手实践

1 条

🔒 完整前置链分析 + 逐岗位引用明细

本页已免费展示学习定位与市场聚合;Pro 深读补齐完整前置依赖链分析与逐岗位引用明细 (核心/加分与深度档、岗位画像)。

知识分享

社区经验 · 管理员审核后展示

暂无分享——第一个来聊聊你的经验和踩坑吧。

有经验想分享?登录后可提交你的知识分享,管理员审核通过后将署名展示。

难度档决定星等与难度分权重(入门 1 / 进阶 2 / 精通 3);学习资源由编辑部遴选并持续维护, 经验心得欢迎在上方「知识分享」区署名分享。