20170905 完美世界-互联网C++工程师

两轮技术面,一轮VP面,一轮HR面

技术一面有三个面试官,整体气氛非常轻松愉快,在聊天中问问题;二面有一个面试官,比较严肃,跟传统的面试经历差不多。

VP面不止谈很上层的东西,也会问一些发散性的问题,考察你的逻辑思维。

HR面非常轻松愉快。

我面试的部门不是做游戏的研发,而是开发电竞平台,整体来说,不要求你有多么多么丰富的游戏经历,不懂游戏也不会减分,但是懂一点游戏的话,肯定还是有一定优势的。

技术面问题:

1. 谈一下对内存的理解。

2. 谈一下对指针的理解。

3. 如何判断两个链表有交叉。(不用找交叉点,所以从头遍历到尾,只要两个尾相同,就必然有交叉)

4. 问了项目。解释什么是HoloLens和AR。

5. 谈一下对多态的理解。虚函数的作用。如何调用虚函数(虚函数表,指针,虚函数表存了什么?)虚析构的作用。创建一个子类实例,创建各个成员的顺序。构造函数中是否可以调用虚函数?为什么?

6. 定义一个空类,它的sizeof是多少。为什么。

7. 平时用到了哪些STL?讲一下map。map是有序的么?map的排序依据是什么?

8. 铺地砖问题(动态规划)。开始我用了递归函数,后来问如何优化函数?(把递归改成循环)

9. 更喜欢做研究还是做工程?为什么?

10 指针和引用的区别

11 new和malloc的区别

12 delete和delete[]的区别

如果申请的是一个堆内存变量,则delete后的[]可以省略;如果申请的是一个堆内存数组,则该[]不能省略,否则还是会出现内存泄露。

13 说一下explicit

14 C与C++的区别

15 冒泡排序

16 extern的作用

17 头文件中是否可以定义变量?

VP面:

1. 问了本科毕设?如何保证设计出的密码的安全性

2. 问了项目。解释AR和HoloLens。

3. 现在服务端的产品越来越多,如何看待现在客户端的应用越来越少这一问题。

4. 如何破解九宫格手机解锁?可以试无穷多次。(我说了循环,从包含一个节点到包含9个节点。后来面试官说有没有什么可以减少实验次数的方法?我又想到了增加约束条件,比如某两个点不可能直达等等)

5. 给定一张人像,如何判定这个人像是某个人?(特征提取,特征匹配)

推荐阅读更多精彩内容