目前只是简单的列出高频考点梳理,后续会完善相关内容。
高频考点梳理
C++ 基础
const
、define
的联系与区别
- 指针和引用的区别
- 堆和栈的区别
- 构造函数、析构函数
new、delete
和malloc、free
的区别
- 深拷贝和浅拷贝
- 友元函数、友元类
static
的用法与意义
- 内联函数
- 继承、虚继承、钻石继承问题
- 同名覆盖问题
- 虚函数表、虚指针、虚函数(实现原理)、纯虚函数
- 接口(实现原理)、多态
- 重写、重载
- 函数重载、运算符重载
- 流类库和文件
- 为什么C++没有实现垃圾回收?
进阶
- 内存管理
- 函数模板、类模板
- C++ 中对于异常的处理
- 对于继承和多态底层的理解
- 对于
virtual
底层的理解
- 智能指针有哪些?
<scoped_ptr/shared_ptr/weak_ptr>
这三个是最核心的智能指针,理解清楚智能指针的本质是,内存的申请与释放全部交给了对象管理,以避免人为疏忽,造成内存泄露
C11
新特性
string
底层实现
STL
unordered_map
和map
的区别、底层实现
vector
的底层实现
set、map
和vector
的插入复杂度
- 考察自动扩容的原理
- 对于迭代器、空间配置器的理解,(比如:一级空间配置器、二级空间配置器的运用场合分别是什么?一二级空间配置器的本质是什么,如何用内存池去管理?所存在的问题又有哪些,源码又是如何实现的等等)
去哪找答案?
拓展
Linux(进阶)
C++ 路线对于Linux的掌握程度要求更高
- Linux 进程环境:僵尸进程、孤儿进程、守护进程、进程组、会话、前台进程组、后台进程组
- Linux 进程七大通信方式:
signal、file、pipe、shm、sem、msg、socket
- Linux 线程:互斥量、锁机制、条件变量、信号量、读写锁
- Linux 下并发模型:多进程、多线程、线程池
- Linux 下
I/O
复用:select、poll、epoll
高并发
- Linux 网络编程
- 静态库和动态库
Linux 内核源码剖析(进阶)
对于 Linux 内核源码,可以先看 Linux 内核的设计与实现,了解清楚每部分的构造与原理,前期多看书、多看相关视频,对一些源码的解读,到一定程度,最好拿到 Linux 2.6 版本内核源码,我是用 Source Insight 工具辅助分析源码的。
推荐书籍
参考文章:
卡片笔记
把看书过程中的每个小点用 page 记录下来,后续再把这些素材整理成文章即可。
Loading Comments...