金山 C++开发 面经

2022/11/18 一面(30min)

1、自我介绍

2、介绍select

3、poll、epoll和select的区别

4、多态

5、析构函数声明为虚函数

6、棱形继承(虚继承)

7、析构函数能否抛出异常

8、用catch捕获异常后,抛出异常的代码是否还往下执行

9、malloc和new的区别

10、free如何知道释放多大的内存空间

11、vector的扩容策略

12、map和unordered_map的区别

13、红黑树的特点

14、是否用过QT

反问:

1、公司业务方向?

主要和QT相关。

2、培养机制

3个月集训+1年导师

11/22 二面(45min)

1、C和C++的struct的区别

2、如何把基类指针转为子类指针,能否保证安全转换

3、如何判断dynamic_cast是否转换成功,dynamic_cast的返回值(根据返回值是否是nullptr判断是否转换成功)

4、字节对齐(字节对齐规则)

5、static的作用(局部变量、普通函数、成员变量、成员函数)

6、vector添加元素的过程,vector分配在栈上还是堆上,sizeof求vector大小(3个指针,12个字节)

7、class有静态成员变量和没有静态成员变量的sizeof的区别

8、class的成员函数加virtual和不加virtual的sizeof的区别(虚表指针)

9、map的底层原理,查询时间复杂度(红黑树,O(logn))

10、list的底层原理,查询时间复杂度,如何进行排序及时间复杂度

11、介绍你最熟悉的项目

全部评论
有收到测评么
1 回复 分享
发布于 2022-11-29 11:18 广西
老哥base是武汉吗?
点赞 回复 分享
发布于 2022-11-19 15:35 河南
校友去吗?我拿到的是武汉的
点赞 回复 分享
发布于 2022-11-23 11:10 辽宁
老哥拿到offer了吗
点赞 回复 分享
发布于 2022-12-03 10:30 广东
大佬有后续了吗
点赞 回复 分享
发布于 2022-12-06 19:27 云南
大佬,这些问题是八股内容么
点赞 回复 分享
发布于 2022-12-18 10:18 河南

相关推荐

11-05 17:16
门头沟学院 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##牛客创作赏金赛##数据人的面试交流地##远程面试的尴尬瞬间##面试中的破防瞬间#
国棉17厂丶小王:sort是长度小于32选择插入排序。大于32选择快排,快排采用递归进行,如果递归栈的层数超过了1.5log n,那么就改用堆排,快排随机数的划分,40个以上采用九数取中,40个以下3数取中。(随机选择和递归深度msvc是这样的,其他stl不清楚),但是排序算法是这三个都一样的
点赞 评论 收藏
分享
5 87 评论
分享
牛客网
牛客企业服务