很久之前面的了,现在来整理一下面经
之前在某自驾公司实习过,所以mmt的面试官对我还是挺感兴趣的
一面
- 讲一下no except如果出现了异常会怎么办?
- emplace back,vector里面emplace back是什么
- 右值引用是怎么样的,如果没写右值引用的函数呢?主要就是减少一次拷贝
- 在写webserver的时候,socket编程是阻塞还是非阻塞的,边缘触发和水平触发的区别是什么
- 阻塞的话你用的是水平出发还是边缘触发,为什么呢
- C++的多态是怎么做到的---模板编程和虚函数
- 虚函数和虚函数表
- 为什么不用别人的序列化和反序列化框架,公司用这个有什么特殊的意义嘛?
- 队列之间是怎么同步消息,mmap解释一下怎么通信的?解释reactor是做什么做到通信的
- extern有什么用,为什么要这样做呢,不这样做为什么报错
总的来说这一面学到很多东西,40mins左右全程是聊C++八股和实习的内容
二面
- 花了20mins聊实习业务怎么改进
- 四个cast讲一下,dynamic_cast和static_cast是在什么时候转换的?
- 如果dynamic_cast是在运行时转换,原理是什么?
- type-id是什么?RTTI了解过多少?
- 解释一下在实习里面怎么实现了C++的反射机制
- 设计模式了解多少?单例模式怎么实现的?magic static怎么保证线程安全
- 解释一下static关键字的用法?static的初始化是在什么时候的?
- git rebase和merge的原理讲一下?
- 如果我在某一个feature分支开发了2个月,这个时候要回去dev分支或者主分支,你应该用哪个命令?
其他的有点忘了,总体很喜欢mmt,面试官也很有水平学到了很多,后续oc了,但是因为有更好的offer就没去