华为 C++ 一面

1. 屏幕共享简历并介绍

根据自己的具体情况回答

2. 哈希冲突是什么?如何解决?

哈希冲突指不同的key经过哈希函数计算后,得到相同的哈希地址,是哈希表设计中必然出现的问题。解决方法主要有四种:

  1. 链地址法:哈希表数组的每个位置挂载一个链表,冲突的key直接加入对应位置的链表,实现简单,适合高冲突场景,是工业界主流用法;
  2. 开放定址法:冲突后按固定规则(线性探测、二次探测等)寻找下一个空的哈希地址,无需额外空间,但易产生数据聚集,删除操作复杂;
  3. 再哈希法:准备多个哈希函数,一个函数产生冲突时,用下一个函数计算新地址,减少数据聚集但增加了哈希计算的开销;
  4. 公共溢出区法:将哈希表分为基本表和溢出表,所有冲突的元素统一放入溢出表,处理逻辑简单但溢出表满后性能会大幅下降。

3. 为什么析构函数往往是虚函数?

核心原因是为了避免基类指针/引用指向子类对象时,销毁对象发生内存泄漏;若析构函数非虚函数,编译器会进行静态绑定,通过基类指针删除子类对象时,仅会调用基类的析构函数,子类独有的资源无法被释放;将基类析构函数设为虚函数后,会触发动态绑定,删除对象时会先调用子类的析构函数,再调用基类的析构函数,保证父子类的资源都能被完整释放;仅当类作为基类且会被继承时,才需要将析构函数设为虚函数,普通类无需额外设置。

4. 如何用C语言模拟实现面向对象的特性,包括继承和多态?

C语言无原生面向对象特性,核心通过「结构体模拟类的封装」「函数指针模拟类的成员方法」「结构体嵌套实现继承」「函数指针重写实现多态」完成,具体逻辑:

  1. 封装:用结构体封装类的成员变量和函数指针(对应成员方法),对外只暴露结构体和构造函数,隐藏内部实现细节;
  2. 继承:子类结构体中嵌套基类结构体,直接复用基类的所有成员变量和方法,子类可按需扩展专属的成员变量和方法;
  3. 多态:子类重写基类的函数指针(方法),通过基类指针调用该方法时,会自动执行子类的重写实现,达成一个接口多种表现的效果;同时可通过自定义函数实现类的构造/析构逻辑,完成资源的创建和释放,整体通过结构体+函数指针的组合,实现面向对象的核心特性。

5. 拥塞控制的流程是什么?

TCP拥塞控制的核心是通过调整拥塞窗口(cwnd)控制数据发送速率,避免网络因数据量过大产生拥塞,经典流程分为四个阶段:

  1. 慢启动:初始将cwnd设为1个MSS,每收到一个ACK确认,cwnd翻倍呈指数级增长,直到cwnd达到慢启动阈值(ssthresh),进入下一阶段;
  2. 拥塞避免:此阶段cwnd不再指数增长,每经过一个RTT(往返时间)cwnd加1呈线性增长,持续探测网络的最

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++ 常考面试题总结 文章被收录于专栏

本专栏系统梳理C++方向, 大中厂高频高频面试考点 , 内容皆来自真实面试经历,从基础语法、内存管理、STL与设计模式,到操作系统与项目实战,结合真实面试题深度解析,帮助开发者高效查漏补缺,提升技术理解与面试通过率,打造扎实的C++工程能力.

全部评论
工程中谁会使用C语言模拟c++的继承、多态。。纯为了面试而面试。
点赞 回复 分享
发布于 03-06 23:18 陕西
凉经吗
点赞 回复 分享
发布于 02-26 21:41 云南

相关推荐

04-04 21:23
门头沟学院 Java
一直没有勇气书写下书写下这段时间的找实习经历一直在焦虑也一直在碰壁,但是不可否认的是在经历各种碰壁之后自己反而成长的最快首先是一开始的中小型公司,聊的都挺好的,也都愿意发offer一个一个首先介绍吧首先万兴科技这是我觉得非常恶心的一个公司(不刻意抹黑,我只说事实),实际上只有一轮技术面试,后面两轮问的比较少,但是他们是Golang需要转语言,星期三业务部的领导面过之后答应可以入职,跟hr联系之后答应是下周三之前给他们答复,到我周二想详细的了解薪资跟培养制度以及转正,当时hr跟我说的是问一下业务部给我订的职级,hr准备实际的发邮箱offer了,一个小时之后hr跟我说他们业务部早就终止流程,连hr都不知道,属实有点恶心人然后的话就是字节海外电商,一路面到了第四轮技术终面,解释一下为什么有四轮,因为第二轮的算法题面试官让我用最优解写出来,面试官也一直跟我将思路,但是当时没get到核心,没写出来,所以又加了一轮面试,技术终面推迟了两次,每次都是面试前一个小时告诉我面试官临时有事,上来让我用IDE写题,一道字符串操作题,一开始用正则表达式几分钟就写好了,后面又让我自己实现,写完没考虑特殊情况,面试官说知道了直接开始面试,上来就是场景题,一百亿条IP加时间戳的日志数据内存限制100M,统计IP出现次数并且实现排序,我的思路是先对文件进行分片,对日志进行hash取模之后相同IP放到同一个分片文件中,再对小文件内进行IP统计和排序,最后的话就是多路归并排序写入到文件中,后来就是问我高考分数,还有一些八股,其中的话https加密握手聊挺长,我只详细说了RSA机制的握手加密面试官可能不是太熟悉一直问我是这样的吗,一直在追问为什么双方要进行随机数交换还有预主密钥跟他详细解释之后面试官也觉得我说的挺好的,自己就是安全专业的所以对这个使用非对称加密实现对称加密秘钥传输比较熟悉,最后应该是排序挂,那边有更好的人选,第二天又被其他部门捞起来了(贴个手撕:带超时的LRU,最小覆盖子串,下一个排序,最大有效括号长度,版本号比较,编辑距离变种)小米hr联系的时候进行了二十多分钟AI相关知识的问答,联系一面,面试体验比较好,面试官比较实在,直接说八股列表找两个问我,手撕环节是让我搭建一个后端服务简单的进行CRUD可以使用AI,面试时长一个多小时,后面的话面试结果不知道,给Hr打电话也不接应该是KPI腾讯直接没有面试,已经找过校园大使HR帮忙投递但是一直没面,身边的人都给面了就我没有,可能是之前提前批自己的处男面面评不太好,鼠鼠也是无奈啊快手简历挂,米哈游简历挂其他像华为阿里实习开的比较晚,因为自己手上有offer,并且自己还能接受,所以就没面了美团是实习之后面的,一直没时间准备,答的还行,但是因为美团面试平台有问题,没手撕只说了思路题目不难leetcode中的课程表那道题自己没详细整理面经,只是记录每次面试中答的不太好的,所以这里就不贴面经了最后的话选择了一家中小厂吧,还是不透露了呜呜呜,公司发的mac还用的不太习惯,但是AI模型随便用,我一周就用了三十刀,mentor是个大牛也是个老顽童贼有趣,实习体验挺好入职一周多,自己随便写的心得大家不要嫌弃
查看10道真题和解析
点赞 评论 收藏
分享
评论
2
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务