金山WPS,C++研发工程师,一面
金山WPS,C++研发工程师,一面
时间:58min
内容
C++基础
- 自我介绍
- 平时有用C++写过项目吗?(这里没让我展开说项目)
- 对C++的特性有什么了解
- 对封装、继承、多态的具体理解
- public/protected/private的区别
- 说一下三种方式继承对基类的访问权限
- 说说构造函数的执行顺序,析构函数呢
- 说一下构造函数内部干了什么
- 如何实现多态
- 构造函数和析构函数可以调用虚函数吗,为什么
- 析构函数一定要是虚函数吗,为什么
- 怎么理解C++的面向对象和C的面向过程
- 可以介绍一下new的实现原理吗
- new和malloc的异同处
- C++怎么为各种变量分配内存空间的
- 引用了解吧,介绍一下
- 拷贝构造函数内部做了什么,什么时候需要重写
- 初始化列表了解吗(以为是那个C11特性,没敢说)
- 平时用什么编程环境(Windows+MFC+Qt)
- 用过Qt是吧,说一下信号和槽的机制,绑定的方式
- 你觉得MFC和QT比各自有什么优缺点
- MFC的消息机制和Qt消息机制的对比
进程线程相关
- 了解过线程吗,谈一下进程和线程的联系和区别吧
- 对于共享的区域多个进程或线程一起访问会不会出问题,要怎么解决(同步和互斥)
- 进程通信有哪几种方式,介绍一下
网络(项目里有)
- Socket的流程是什么样的(服务端和客户端两个)
- 项目里用的什么协议(TCP)
- TCP和UDP的区别,优缺点
数据库
- 你这项目的数据库自己设计的吗,简单介绍一下你的设计流程
- 了解数据库范式吗,介绍一下
- 用过索引是吧,说一下索引的优缺点,选取条件
- 数据库里多对多关系怎么处理设计
数据结构
- 说说vector和list的不同,优缺点
- 平衡二叉树了解吗,说说它的特点,时间复杂度(logN)
- 说说二叉树的三种遍历(想让我写来着,没带纸笔,口述了算法思想和区别,递归和非递归)
- 图了解吗,说一说它的遍历(广度和深度)
回到C++
- 说说宏定义和const的区别
- 宏定义和内联函数的区别
- 内联函数的作用,和普通函数有什么区别
- C++有几种转换方法,简单介绍一下
- 重载是什么,和重写有什么区别
- 那今天就到这里,有消息会后续再通知你的
总结
有些问题记得不太清楚了,总体大致如上。
感觉回答的有点急了,对有些问题思考没那么深入,下次要加油。