【腾讯】C++岗-魔方工作室后台开发
一面(电话面)
上来二十分钟的项目介绍、收获。
C++基础:
define与const的区别;
class与struct的区别,没答到关键点(默认权限);
class怎么防止继承,只讲了私有构造,忘了final关键字;
struct的字节对齐问题,讲到了自己的项目遇到过,但还是答错了,后来恶补了下,才发现了新大陆;
memcpy与memmove的区别,完全不知道memmove函数。。。
STL库介绍一下,为什么要设计迭代器;
map的实现原理,红黑树攻读差最大是多少;
运行期多态(虚函数表)与编译器多态(模板);
密码算法:
非对称加密算法流程;
常用签名算法;
Linux 命令:
磁盘使用情况df、fdisk;
端口使用情况netstate;
CPU信息;
命令别名alias;
网络:
TCP与UDP的区别;
半连接、半打开、半关闭,搞混了半连接与半打开;
粘包与拆包,标识头和缓冲处理;
标准结束语:想问点啥。
二面(视频面)
很实在,直接开始手撕代码:将零元素移动到数组尾部,保持其他元素的相对顺序
如果用STL库,应该用哪个函数,std::remove
场景题:利用qt设计一个画板程序,能够绘制不同的图形(正方形,直线,圆),而且以后可能增加新的图案,怎么设计?
其实问的就是C++多态的使用
sizeof(vector
unordered_map的底层实现原理
最后以一道编程题结尾,然而我完全没想法:实现LRU算法,要求o(1)时间获取最近最少使用,o(1)时
间修改,LeedCode上有原题
最后发现是hash表加链表实现的
三面(总监面)
场景题:mmorp游戏同步的优化问题,比如有一个游戏场景,同时有10000个玩家在场景内,服务器
的通讯复杂度多大,怎么优化
面试官很不错,一步一步引导我去优化,他说每个玩家可能只看得到部分玩家,所以优化就是局部同
步,不在视野内的玩家不进行同步
项目]尬聊20分钟,因为面试官不是安全专业的,我的项目又是安全相关的,很多专业名词,所以全程
尬聊
没办法,强行将游戏和安全结合,问我游戏可能遇到什么安全问题,你有什么解决办法,然后又是一通
尬聊,
最后还是问问C++相关的,map的实现原理
dynamic_cast的作用,编译器如何打开这个功能(RTII),如果编译器关闭了运行期类型识别,自己如
何实现dynamic_cast
然后就扯到了java的反射,实现一棵类型树,在运行期查找类型树
面完自己都感觉很虚,不过好在面试官还不错,全程微笑,感觉就是在聊天
HR面
正常的面试流程,问问想不想来腾讯,入职时间问题,很短。
3月底就接到了腾讯的offer call