CVTE C++ 软件开发 一面 面经

1. 自我介绍

面试官您好,我叫XXX,本科/硕士就读于XX大学XX专业,主要技术方向是C++后台开发。在校期间做过XXX项目,主要负责XXX模块,用到了XXX技术栈。实习期间在XX公司做了XXX,主要解决了XXX问题。目前对网络编程、并发编程比较感兴趣,希望能在贵公司继续深耕这个方向。

2. C++11 你用得比较多的特性有哪些?

用得比较多的有以下几类:

移动语义和右值引用:通过std::move避免不必要的深拷贝,在传递大对象时性能提升明显。

智能指针:unique_ptr、shared_ptr、weak_ptr,解决手动管理内存容易泄漏的问题。

lambda表达式:配合STL算法或异步回调使用,代码更简洁。

auto和范围for:减少冗长的类型声明,提升可读性。

std::thread和std::mutex:标准库层面的多线程支持,跨平台。

std::function和std::bind:用于回调封装,在事件驱动模型里很常用。

3. 介绍一下几种智能指针,各自的使用场景?

unique_ptr:独占所有权,不可拷贝只能移动,开销最小,适合明确只有一个所有者的场景,比如工厂函数返回堆对象。

shared_ptr:引用计数,允许多个指针共享同一对象,对象在最后一个shared_ptr析构时释放。适合对象生命周期需要被多处共享管理的场景。

weak_ptr:不增加引用计数,配合shared_ptr使用,主要用来打破循环引用。使用前需要lock()提升为shared_ptr再访问,避免悬空。

常见陷阱:两个对象互相持有对方的shared_ptr会导致循环引用,引用计数永远不归零,内存泄漏。解决方案是其中一方改用weak_ptr。

4. enable_shared_from_this 有哪些注意事项?

enable_shared_from_this 用于在类的成员函数内部安全地获取指向自身的 shared_ptr。

注意事项:

第一,对象必须已经被shared_ptr托管,才能调用shared_from_this()。如果对象是栈上分配的,或者还没有被任何shared_ptr持有,调用会抛出bad_weak_ptr异常。

第二,不能在构造函数里调用shared_from_this(),因为此时shared_ptr还没有构造完成,内部的weak_ptr还没被初始化。

第三,继承enable_shared_from_this时要用public继承,否则内部机制无法正常工作。

典型使用场景是异步回调里需要延长对象生命周期,比如在网络库里,一个连接对象把自身的shared_ptr传给异步操作的回调,保证回调执行时对象还活着。

5. STL常用容器有哪些,vector 和 list 分别适合什么场景?

常用容器分三类:

序列容器:vector、list、deque、array。关联容器:map、set,底层红黑树,有序。无序容器:unordered_map、unordered_set,底层哈希表

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

C++八股文全集 文章被收录于专栏

本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。

全部评论

相关推荐

📍面试公司:字节🕐面试时间:3.6💻面试岗位:抖音直播客户端❓面试问题:面了100分钟,问了很多,下面是我极尽全力没回答上的问题:Qt6(QML)对比Qt5?性能?(对Qt6,QML,QtQuick不太了解) Qt信号槽底层实现机制(只记得moc了应该还有其他比如事件循环和消息队列等等) 父类和子类构造函数里调用静态函数,到底执行谁的(这个可能记错了,反正当时一点不会) 右值解决了什么问题(不知道) 共享指针两种创建方式以及区别(完全忘记了,丢死我了) memcpy / memset(内存操作相关,完全不了解) 懒汉式怎么加锁实现线程安全,描述一下(不知道) 快速排序(详细描述,说我描述的不准确,确实如此,当时我菜的要命) TCP滑动窗口 变化? UDP怎么优化(答了借鉴TCP不知道对不对) 声网SDK屏幕共享底层实现原理(完全没有准备答的很乱,答的webrtc,推拉流,RTP/RTSP,IPB帧等等) 直播业务相关(直播时长统计?直播延迟怎么计算?) 项目写了高性能,低延时是怎么去测的?(没有仔细测过,只是凭感觉,面试官对此很不满意) 设计模式?单例模式?如何实现?(单例模式怎么实现?当时忘完了) 手撕:单例模式下LRU缓存(单例不会,LRU基本撕出来了)请帮我整理并解答一下,上次面字节抖音直播客户端的我所以完全没答上来以及没答好的问题都在这里了🙌面试感想:很多业务相关的,项目里音视频部分调用第三方API,对底层原理不太了解,所以答得不好,挂了在意料之中
查看30道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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