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。

全部评论

相关推荐

面的时候感觉面试官问的方向其实已经不匹配了,感觉要挂,但是最后面完还是过了,运气比较好吧,遂记录1. 自我介绍2. 算法题:(1)二叉树最近公共祖先(2)一个班40人,分数都在0-100,小明分数为60分,小明可以挑任意数量的人数和自己一组,要使得这一组的平均分尽可能高,该怎么选,输出最后的人数3. 实习业务及代码实现细节(实现细节有些记不清了,mark一下)4. go的defer和recover5. recover里一般塞什么东西(原话好像是这样,有点久没用了随口胡诌了点,mark一下)6. go的GMP模型介绍7. 如果一个内核线程阻塞了,那go是怎么调度(现场猜的,mark一下)8. MySQL的事务隔离级别以及存在的问题9. MySQL的主从数据同步怎么做10. binlog里面具体是什么东西(记不太清了,凭记忆答了一点,mark一下)11. 可重复读级别下幻读现象的详细解释12. select for update会有什么效果13. 分布式事务了解吗(不了解)14. 分布式锁介绍一下15. redis怎么实现分布式锁(redis有点久没看了,答得不是很全好像,mark一下)16. 假如业务执行还没完,分布式锁就被释放了怎么办(依稀记得好像也是个八股,有点印象,答了大致的思路但是细节记不清了,mark一下)17. 介绍一下https18. https如果有中间人介入怎么办19. CA证书信任链问题20. 平时怎么用ai,用来干什么(问到点了,开始大吹特吹AI Coding工程化实践经验)总的来讲实习业务答得还行,但是实现细节有瑕疵,八股也就mysql和计网好点,其他烂完了,进二面真是运气,球球不要给我一张饼再打我一巴掌把我扇醒🐀三月份能投的都投了,差不多挂完了,tx差不多是最后的希望了
查看21道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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