C++

C++

💡
目前只是简单的列出高频考点梳理,后续会完善相关内容

高频考点梳理

C++ 基础

  • constdefine的联系与区别
  • 指针和引用的区别
  • 堆和栈的区别
  • 构造函数、析构函数
  • new、deletemalloc、free 的区别
  • 深拷贝和浅拷贝
  • 友元函数、友元类
  • static的用法与意义
  • 内联函数
  • 继承、虚继承、钻石继承问题
  • 同名覆盖问题
  • 虚函数表、虚指针、虚函数(实现原理)、纯虚函数
  • 接口(实现原理)、多态
  • 重写、重载
  • 函数重载、运算符重载
  • 流类库和文件
  • 为什么C++没有实现垃圾回收?

进阶

  • 内存管理
  • 函数模板、类模板
  • C++ 中对于异常的处理
  • 对于继承和多态底层的理解
  • 对于 virtual 底层的理解
  • 智能指针有哪些?<scoped_ptr/shared_ptr/weak_ptr> 这三个是最核心的智能指针,理解清楚智能指针的本质是,内存的申请与释放全部交给了对象管理,以避免人为疏忽,造成内存泄露
  • C11新特性
  • string底层实现

STL

  • unordered_mapmap的区别、底层实现
  • vector的底层实现
  • set、mapvector的插入复杂度
  • 考察自动扩容的原理
  • 对于迭代器、空间配置器的理解,(比如:一级空间配置器、二级空间配置器的运用场合分别是什么?一二级空间配置器的本质是什么,如何用内存池去管理?所存在的问题又有哪些,源码又是如何实现的等等)

去哪找答案?

拓展

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 记录下来,后续再把这些素材整理成文章即可。
🧩变量和基本类型☯️闭包默认初始化变量声明和定义的关系链式定义的参数顺序🔏C++ Primer 勘误
 
你觉得这篇文章怎么样?
YYDS
比心
加油
菜狗
views

Loading Comments...