追一科技 C++ 一面

1)C++ 多态和继承

  • 继承:子类复用父类成员,表达 is-a 关系。
  • 多态:同一接口,不同实现;运行时通过基类指针/引用调用子类重写函数。
  • 条件:基类函数要加 virtual,通过指针/引用调用才是运行时多态。

2)C++ 智能指针如何自动销毁

  • 本质:RAII,智能指针对象析构时自动释放资源。
  • unique_ptr:独占所有权,离开作用域自动 delete。
  • shared_ptr:引用计数,计数为 0 时销毁对象。
  • weak_ptr:不增加引用计数,解决循环引用。

3)虚函数的作用

  • 支持运行时多态(动态绑定)。
  • 通过虚函数表 vtable 在运行时决定调用哪个重写函数。
  • 常用于接口抽象、框架扩展、解耦。

4)TCP 通过什么保证可靠传输

  • 序列号 + ACK 确认应答
  • 超时重传
  • 滑动窗口(流量控制)
  • 拥塞控制(慢启动、拥塞避免等)
  • 校验和 + 按序重组 + 去重

5)操作系统主要功能

  • 进程/线程管理(调度、同步、通信)
  • 内存管理(分页、虚拟内存)
  • 文件系统管理
  • 设备管理(I/O、中断)
  • 用户接口与系统调用
  • 安全与权限控制

6)排序算法时间复杂度(最低)

  • 基于比较的排序理论下界:O(n log n)。
  • 非比较排序(计数/桶/基数)在特定条件下可达 O(n)。

7)如何防止类被继承

  • C++11:class A final { ... };
  • 或者构造函数设为 private/protected 并限制创建(不如 final 直观)。

8)出现死锁的原因

死锁四个必要条件同时满足:

  • 互斥
  • 请求并保持
  • 不可剥夺
  • 循环等待

常见场景:线程 A 持有锁1等锁2,线程 B 持有锁2等锁1。 预防:固定加锁顺序、一次性申请资源、超时锁、死锁检测。

9)Go 中 goroutine 的底层调度

  • Go 调度模型:G-M-PG:goroutineM:内核线程P:处理器(调度上下文)
  • 调度器把大量 G 映射到少量 M 上执行。
  • 特性:工作窃取(work stealing)、抢占式调度(新版本更完善)、网络 I/O 与调

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++ 常考面试题总结 文章被收录于专栏

本专栏系统梳理C++方向, 大中厂高频高频面试考点 , 内容皆来自真实面试经历,从基础语法、内存管理、STL与设计模式,到操作系统与项目实战,结合真实面试题深度解析,帮助开发者高效查漏补缺,提升技术理解与面试通过率,打造扎实的C++工程能力.

全部评论

相关推荐

03-26 17:19
已编辑
东莞理工学院 Java
📍面试公司:即刻🕐面试时间:03/26💻面试岗位:全栈开发(社招)❓面试问题:1. 做一下简单的自我介绍,包括学校、技术栈、开发语言和框架?2. 介绍一下你实习期间负责的主要业务模块?3. 你在实习中主要负责哪些功能开发?4. 你擅长线上 Bug 排查,具体排查过哪些问题?5. 你做过哪些慢查询接口优化?6. 你使用过哪些大数据组件?7. 你之前做的 ETL 数据清洗流程是怎样的?8. 为什么选用 Redis 实现抽奖相关功能?9. 用到了 Redis 哪些数据结构,为什么这样选?10. 为什么要为不同倍数维护独立奖池?11. 如何通过随机数和权重实现抽奖路由?12. 为什么用 lpop 拉取令牌来实现抽奖?13. 为什么要把抽奖逻辑写在 Lua 脚本里?14. Lua 脚本如何保证原子性和并发安全?15. 细粒度奖池如何保证概率稳定、防止超发?16. 线上出现异常时如何通过插入无效令牌做风控?17. 为什么中低价值礼物和高价值礼物要做推送分流?18. 中低价值礼物横幅推送,redis批处理为什么用 pipeline 而不用 Lua?19. pipeline 如何减少 IO、提升性能?20. 礼物连击的 Redis Key 是如何设计的?21. 为什么用前缀分类 Key,如何缩小扫描范围?22. 定时任务扫描频率和数据量大概是多少?23. Redis 出现 BigKey 导致 CPU 100% 怎么处理?24. 线上 Redis 打满如何第一时间恢复业务?25. 如何快速定位 BigKey 来源?26. 单个接口异常如何做限流保护?27. 你用过 Prometheus + Grafana 监控哪些内容?28. 链路追踪中 traceId 如何生成和传递?如果让你,设计一个路追踪器,你会考虑哪些问题?29. 你在 K8s 中如何查看日志排查问题?30. 你对 Docker、K8s 了解到什么程度?31. 你在项目中如何设计熔断降级策略?32. 熔断兜底为什么选择返回“未中奖”?33. 大量请求打垮下游服务时如何防止级联故障?34. 如果让你实现一个简单熔断器,你会怎么设计?35. 你主要使用 Java 还是 Go,业务比例大概多少?36. 对 Node.js、TS 全栈开发有什么看法?37. Redis MQ 和 Kafka 的区别与适用场景?38. MySQL 索引设计主要考虑哪些因素?39. 为什么离开上一家公司,为什么换工作?40. 你更倾向做什么类型的业务,对工作地点有要求吗?🙌面试感想:又是面了社招岗位的岗,基本上没有八股文,面试体验很棒,这个面试官也会给正反馈,真的很喜欢很会在你回答完问题之后给予反馈的面试官,体验很棒,面试问题也大部分偏向场景设计也挺有价值的,当场通知面试过了tips:春招也可以投一到三年的社招岗,也可以约到校招面试
发面经攒人品
点赞 评论 收藏
分享
评论
3
8
分享

创作者周榜

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