技术面二轮:
问了项目细节,让我描述实习期间遇到的最难的一个问题。根据简历上写的问了问细节。
A类是基类,B继承A,C继承A,D继承B和C,现在A里面有一个成员x,问D里有几个x。如果我只想留一份x怎么办,手写一下。
问运行时怎么根据虚函数表找到具体该调用哪个函数(不会)
给了好几个类,类之间有继承关系,每个类里面定义了几个函数,有虚函数有普通函数,好多重名函数,然后写了几条语句问每条语句是执行了哪个函数,说出判断的理由。
最后问我有什么想问的,我就问了问剩下的面试流程,问了问交通便利性、劳动强度、进去之后怎么选项目组
技术面一轮:
问vector和list的区别,空间分布上的区别
问vector是怎么扩容的
问unordered_map的空间复杂度
问x怎么初始化(没见过这样写的,没答出来)
问怎么获取虚函数表的地址(没见过这个问题,也没答出来)
问虚拟内存是什么,有什么好处
问什么时候诱发缺页中断,问是不是每次访存都要经过操作系统,问知不知道MMU(内存管理单元)
问什么是空间局部性,对编程有什么启发
问为什么32位整型数可以直接做加减法
问怎么理解粘包,如何解决(完全不懂)
算法题:求a的n次方,其中n是正整数(快速幂)
春招;笔试面试难度一般,技术栈便图程和客户端不太符合。春招;笔试面试难度一般,技术栈便图程和客户端不太符合。
面试官问的面试题: C++
- 数据类型(基本类型:整形浮点型字符型布尔型,复合类型:结构体联合体数组字符串)
- static const
- 强制类型转换
- 模板声明与实现如何能不在同一个头文件
- 智能指针底层原理 什么时候构造什么时候释放 shared循环引用 weak不会增加引用计数
- [ ] 野指针及产生原因解决
- [ ] 多态 虚函数 类内存
- [x] 局部变量的vector的堆栈存储形式
- [ ] inline与普通函数区别 与宏区别
- [ ] 深拷贝浅拷贝(什么时候会发生浅拷贝,怎么实现深拷贝)
- [ ] 设计模式/ 知道哪些 用过哪些 应用场景 实现