金山WPS--C++面经

武汉金山,一共两面,两面都是问C++基础知识。

一面:手写单例模式;struct和class的区别;如何删除vector的指定元素;四种智能指针;C++的封装继承和多态三种特性;多态如何实现的;一个类会默认生成的6个函数;冒泡排序;一个大文件,里面有很多种颜色,找出出现最多的10种颜色;vector,list,map的底层原理;手写重载拷贝构造函数;拷贝构造函数什么时候需要重载;多线程的同步和互斥;二分查找的条件;堆和栈的区别;手写一个二叉树的结构;寻找两个单链表的交点;malloc和new的区别。

二面:

1.如何用静态局部变量进行单例模式,不准用静态成员指针;

2.如何对虚表的某个位置进行更改,比如定义一个类,类里只有一个虚函数和一个int型变量。

3.模板里可以定义虚函数吗

4.对模板的理解

5.智能指针是怎么实现引用计数的,内部如何定义,为什么。

6.如何找到两个子节点离的最近的公共父节点,讲思路,我直接手写的。

7.全部静态变量,局部静态变量,类内静态成员变量的生命周期,作用域,以及构造和析构函数的调用时间

8.在头文件中声明一个静态变量,在多个cpp文件进行调用,会生成多少个实例。

9.引用的理解。

10.堆和栈的区别。

11.sort()函数的实现,会用到什么排序,为什么

大致就是这些,有些记不清了,二面问的很细节,一脸懵逼。

posted @ 2018-08-29 17:55  依然有清风  阅读(383)  评论(0编辑  收藏  举报