首页 > 深信服c++笔试和一面面经(附部分水答,已挂)
头像
哆啦不做梦
编辑于 2020-06-29 01:23
+ 关注

深信服c++笔试和一面面经(附部分水答,已挂)

更新状态:二志愿,同cpp岗,已拿offer

笔试,二题,只记得一个


方法:状态压缩+dp

面试题

1,介绍一下智能指针?

我回答了,四种智能指针+实现原理以及缺陷和应用场景。如unique_ptr禁止了拷贝构造和赋值构造函数,为了解决auto_ptr所有权占用问题转移后,可能造成为nullptr,从而造成访问非法地址,造成意想不到的后果。如shared_ptr和weak_ptr是共同继承sp_counted_base类,该类包含use_count和weak_count,从而实现管理对象和被管理对象的引用等等。反正讲了挺多的

2,场景题,输入www.baidu.com后,如何得到返回界面的?

我大概讲了一下,DNS域名解析,先查找自己缓存,如果查找不到,就去域名解析系统查询,再到服务端获取ip。然后通过RAP协议,获取mac地址。再通过请求头请求链接,允许建立连接后,并通过请求体获取获取数据。面试官不满意,反问,这样就可以得到百度的界面了吗?

3,拷贝构造函数,讲一下?

深拷贝和浅拷贝

4,new函数失败怎么办

我答,抛出bad_alloc异常,可以通过try catch捕捉。或者通过set_new_handler函数设置函数指针处理失败后的异常。

再问:可以不抛出异常吗?

答:可以,new时,添加std::nothrow

三问,set_new_handler函数怎么实现的?

答:具体函数实现我没看,不过我猜应该是通过设置signal或者sigaction捕捉信号函数,捕捉到异常的信号后,再用回调函数处理的。

5,继续网络,tls和ssl什么区别?

答:不太清楚,我只知道ssl作为https的加密过程

问:那你讲讲?

答:ssl全称是安全套接层,https是利用它的非对称加密的公钥传递对称加密密钥,再用对称加密密钥进行通讯的。这样做的原因是非对称加密的ca认证,签名,以及发送给客户端内置根认证通信的时间太长,效率太低。而且直接传递对称加密密钥可能存在安全隐患。巴拉巴拉,说了一堆。

6,场景题,给定一堆url,用于查找,怎么做?

答:可以分文件存储,利用hash函数,hash到多个文件中,再分文件查找即可。或者用布隆过滤器映射,不过有缺点就是可能不存在,因为布隆过滤器只能查找可能存在,或者一定不存在。

打断问:布隆过滤器怎么实现?

答:利用一堆hash函数,将数据映射进去即可

问:为什么总多个hash函数?

答:防止不同的数据,hash后映射到了同一个位置。多个 hash函数可以避免这一点

问:接着说之前的问题

答:或者用char数组,将url一一映射到不同的char位

问:如何做到一一映射?

答:不太清楚(考虑了一段时间)

7,写一下快排

写了一部分,我有点忘记怎么排的了,几年没看了,面试后,重新过了一遍排序,这是我失误,没想到会考这种简单的算法

8,虚函数表讲讲?

答:主要是用于多态和菱形继承问题,可以通过虚继承,从而根据不同步长的虚函数指针映射到虚函数表里的同一个位置。

9,那什么是多态?

多态,我自己的理解,如,就像基类指针指向子类对象一样,可以通过多态的方式,统一实现不同的调用。

10,其他还有一些cpp的问题,我不太记得了。

问题有点偏,特别是tls和ssl,我之前其实看过的,但是觉得太复杂,涉及加密算法,警报系统的各种不同

总之就是挂了

更多模拟面试

全部评论

(9) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐