华为面试终于结束了,个人感觉华为终端面的挺硬核,面试官人都挺好,下面分享一下 一面(50min) 1.自我介绍 2.项目做了哪些事情,比较难的问题是什么,怎么解决的 3.看你项目C++用的比较多,你主要用到C++哪些内容? 4.看你刚刚提到了继承,你能聊一聊你项目中是怎么抽象出父类成员的(函数成员以及数据成员)? 5.数据成员抽象中,你用到了模板,能谈谈你对模板的理解吗? 6.模板与继承有什么异同? 7.你平时用C++什么版本的呢,新版本特性你知道多少? 8.谈一下Lamuda表达式,如果让你去实现Lamuda表达式,你会怎么实现? 这块我回答了两种方法:1.内联函数+函数指针;2.仿函数重载小括号 9.函数指针是怎么将参数传递进去的,能讲一下具体流程吗? 10.谈谈你对仿函数的理解 11.我看你项目主要做了嵌入式相关工作,你如何处理中断处理函数过长的问题? 12.你在写代码过程中做过哪些优化? 13.你能讲一讲怎么实现两个线程轮流打印,讲一下具体流程 14.讲一讲你的机考题目,第一题与第三题(因为我写出来这两题,所以他让我讲一下思路) 15.手撕类似加油站的问题 16.反问。 面试官人很好,遇到不会的会讲解 二面(1h20min) 1.自我介绍 2.C++多态实现 3.如果父类与子类都有static的变量,创建顺序是怎么样的? 4.空类中具有哪些函数?拷贝构造为什么要采用引用 5.堆与栈的区别,程序的分区 6.内存碎片问题是怎么产生的?怎么解决内存碎片的问题?答几种 7.指针与引用的区别 8.你常用的数据结构有哪些? 9.如果让你去实现一个vector,你会怎么做? 10.了解红黑树吗?红黑树插入一个节点后会怎么操作,能不能举例讲解一下 11.递归存在哪些问题,递归怎么改为非递归的函数? 12.BFS与DFS适用于哪些场景,能举例说明吗? 13.进程与线程区别,进程间通信方式,分别适用于哪些场景? 14.优先级反转问题 15.怎么加快代码运行速度,说几种 16.写题,类似leetcode烂橘子问题 17.反问 主管面 1.自我介绍 2.讨论项目的具体实现 3.期望城市 4.对华为文化的看法 5.反问 面完后进池子了,之前在牛客上总是看到终端挂人,有点慌,过了之后现在只希望华子能捞我[打气][打气][打气]