WPS金山C++一面凉经

1.C++有哪些特性,请使用一段代码演示这些性质。
我写了一些经典的继承,子类中重写的父类的虚函数,然后用父类指针指向子类对象,去实现多态。
但是写的时候有点脑子发昏,把所有成员全public了,被面试官点评为这违背了封装。

2.写两个类,两个类分别有一个虚函数,然后有一些char和int类型,写一个子类去继承这两个类。
3.问上述子类的大小?
我考虑两个虚函数指针以及内存对齐之后,给出了正确的大小。
然后被面试官套路了,问我有子类有两个虚函数指针吗?我说没有只有一个,然后把答案改错,我是个傻子。

4.如何指针类外访问私有成员?
一开始是问如何访问私有成员,我说可以使用友元函数。
忘了面试官怎么说的,但是引导我用指针去思考。
我没写出来。
后面查了一下,可以把类的指针转用reinterpret_cast成对应的数据类型,然后考虑此前类内的内存分布后,给指针位移去找到对应的变量。

5.一些常规C++八股,智能指针和移动语义。

6.问智能指针对象本身是不是线程安全的。

7.问我自己写的一行代码,代码内容是用new申请一块堆内存,问这是不是线程安全的。

8.c++的STL八股。

9.问map和vector在已知key和下标的查询复杂度。
我回答都是O(1)。

10.c++sort是怎么实现的?
我回答:我说根据数据量大小选择快排,堆排。不知道有没有归并,我没查过。

11.用快排实现查询第K大的数。
这个我写出来了,但是差以为,因为小标是0开始的,所以我实现的版本是第0大的数字是大的,而不是第一大的数字。
#哪些公司面试官让你印象深刻?###金山###wps##牛客创作赏金赛##数据人的面试交流地##远程面试的尴尬瞬间##面试中的破防瞬间#
全部评论
sort是长度小于32选择插入排序。大于32选择快排,快排采用递归进行,如果递归栈的层数超过了1.5log n,那么就改用堆排,快排随机数的划分,40个以上采用九数取中,40个以下3数取中。(随机选择和递归深度msvc是这样的,其他stl不清楚),但是排序算法是这三个都一样的
5 回复 分享
发布于 11-05 18:50 湖北
同学你好,之前有投递过华为吗?如果没有的话,也可以考虑下哦。我们新开了一批HC,还没招满,部门业务是战略主航道、发展前景好、同龄人多、部门氛围融洽、全程导师带,感兴趣的话可以了解下。
1 回复 分享
发布于 11-06 17:24 广东
map我记得logn吧
点赞 回复 分享
发布于 11-05 20:33 北京
是客户端吗?
点赞 回复 分享
发布于 11-05 22:55 四川
有后续吗佬
点赞 回复 分享
发布于 11-09 13:55 广东
楼主问问最后的几个是有手撕吗
点赞 回复 分享
发布于 11-12 16:38 上海
请问是base武汉嘛?谢谢
点赞 回复 分享
发布于 11-20 14:48 陕西
问了好多东西呀😂
点赞 回复 分享
发布于 今天 00:11 湖北

相关推荐

10-24 19:12
已编辑
武汉理工大学 C++
c++技术栈 ,面试官应该是go自我介绍 10min 1介绍实习项目,看你实习项目提到了微服务框架,简单介绍。    提到了protobuf,对比protobuf和json,怎么做压缩,哪些可以压缩,int可以压缩吗?浮点数可以压缩吗?2 看你简历写了dorker 怎么用的 用来干嘛 dorkfile怎么编写 常用指令 你觉得dorkerfile如果写的很多在容器运行时有什么坏处 了解dorker镜像底层的制作和原理吗 3 介绍一下进程 线程 协程 特点 原理 应用场景 。4介绍分布式文件系统他的优点,解决什么问题,怎么保证可靠性的。   针对存储效率和备份相关扯到了通信专业的信息论 问我学过没有 用较少的信息去恢复更多的信息流,用到了什么交叉码。说没学过,但是408里面的存储阵列和这个很像。   场景题:1G文件上传服务器,怎么保证高效和可靠性,设计一个系统。然后针对每个设计点提问。5 开始提kafka    你提到了kafka的生产者写入leader消息有多种确认方式,为什么kafka可以这么设计,或者说为什么这种消息队列可以这么设计,因为消息队列有很多种,听不懂问题。面试官又说比如一些转账业务,需要重传之类的就不好用kafka实现,他想让我回答kafka的应用场景,我说没有在不同的业务对比过,不太了解。6. nginx相关     场景题    nginx主要做负载均衡,如果让你实现一个nginx负载均衡器,怎么做,实现了两种,一种是基于随机数,一种是基于数组轮询的。 追问如果考虑长连接短链接呢,没答上来      7 mysql    场景:   mysql假设我现在是主从复制,那我针对不同的场景怎么去平衡效率和可靠性,如果你不了解,你自己去实现你怎么实现。   分表问题:介绍纵向和横向的拆表方法 8介绍研究生的研究项目,怎么做的,涉及哪些技术,baseline9. 介绍简历里的游戏项目,针对项目进行提问,怎么优化的。10.  看到时间了,然后反问,问了转语言的问题。 #金山办公# #金山办公面试#
查看16道真题和解析
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-13 13:55
点赞 评论 收藏
分享
12 44 评论
分享
牛客网
牛客企业服务