金山 c++ 一面 二面 面经
一面
- 多态怎么实现的
- 多继承的问题,其他缺点,多继承其他实现方法
- 类模板和函数模板调用时的区别
- 怎么在通用vector里实现特殊的string vector
- 异常处理
- 进程里的内存结构
- 静态变量什么时候内存分配
- 堆区的内存怎么管理, 除 了new出来的还有什么适合raii 管理
- c++多线程参数,多线程会出现的问题
- 怎么解决死锁,那怎么提前避免死锁
- 保证线程安全的机制
- 开放题:多线程程序怎么提升性能,怎么让线程任务分配更快
- c++新标准特性,模板新特性有哪些
- lamda返回类型
- lamda,有哪几部分,
- 完美转发,怎么实现
- 最简单的单例模式怎么实现
- 熟悉的数据结构,堆有什么规律
- 有序二叉树是什么结构
- 有哪些优秀的排序算法,快排坏情况,哪些稳定
- 归并和快排的基本思想
- 排序算法性能指标有哪些
- 空间复杂度表现比较好的算法,优秀的里面有哪些
- Q0bejct里面有什么
- 怎么自己实现单线程信号槽机制,一个信号连多个槽怎么实现
- 擅长的代码,专业课
二面
- 多态,虚指针怎么知道调用对应的虚函数是哪个,多态的优点,缺点
- 类型转换几个关键字的作用,const cast要注意的问题
- 除了关键字c++还有哪些类型转换(单参数构造函数隐式转换),explicit的作用
- 介绍几个智能指针,weak ptr为什么能实现
- 自定义 unique ptr怎么写,移动构造怎么实现
- 静态库和动态库的区别
- 10w个IP地址,怎么找出访问量最多的10个(内存放不下)
- 自定义vector,(n,10)怎么实现,push back实现
- 反问:想招什么样的人(cpp技术及格,或者有远超同龄人的亮点的)