直播C++岗面试感受两轮技术面+一轮HR面 总体难度一般 问题内容比较基础 没有涉及传统算法(除了大模拟) 面试官都很友好 会有提示和点评
一面内容:
1、自我介绍 然后会简单问问你简历上写的项目经历
2、C++基础问题:怎么实现多态的 怎么实现虚函数 构造函数里面能调用虚函数么(包含了对象初始化顺序)(面试官提示:不能,因为调用自己的虚函数一般是父类调用子类重写的父类函数)析构函数能不能/应不应该是虚函数 malloc和new的区别 C++新规范了解过没
3、手写memcpy 先实现基础功能(面试官提示:注意非法参数判断) 然后考虑一下src可能大于dst 然后问你能不能加快复制速度 然后问你如果地址没有偶对齐怎么办(面试官提示:想想总线上的传输过程)
4、设计模式:代码重用(template(不是C++的template)、strategy)UI(MVC、PAC)对象构造(Factory、Singleton、Builder)然后问问Factory有啥好处 能不能再解耦(AoC、DI)AoC有啥好处 系统架构(Adapter、Decorator、Simplifier、Proxy+Cache)
5、手写singleton (就是考察访问控制和线程安全)(面试官提示:可以了解一下双重锁定)
二面内容:
1、自我介绍:同一面
2、C++基础问题:static函数能不能是虚函数 怎么实现虚函数的 虚函数的具体调用过程 构造函数里面能调用虚函数么 什么时候调用无参构造函数 复制构造函数 赋值运算 shared_ptr和unique_ptr有什么区别 lambda表达式用过没 有什么特点
3、手写String类的实现复制构造函数和赋值运算(就是考察深拷贝、内存泄露和野指针)(面试官提示:注意a = a的情况)
4、手写一个把整数转换成三位数字+一位小数点+符号(K、M、G)的格式 需要略去末尾多余的0和小数点 (可以用字符串写个大模拟 反正我这么操作的) (面试官提示:直接暴力用if分类讨论就完了)
面试感受:很好;面试难度:普通难度;面试来源:校园招聘