0. 关于【深度C++】
2023年5月,看了一个月《C++ Primer(第5版)》的我,感觉很“头疼”。
虽然看了很多,但是并没有组织在一起。仿佛一个有很多线头的毛线团,无从整理。
比如一口气让你说出const的用法,你需要分别翻阅书的第2章、第6章和第7章,才了解const可以修饰对象和函数,修饰对象还分为基本内置类型、自定义类型和复合类型,引用最好理解,指针最难判断,成员函数的const究竟是如何工作的。
但是在你和别人交流的时候,很需要这样“深度的”知识体系。因此萌生了这一系列【深度C++】的想法。
当你想象别人问你static都有什么用,你可以自豪地说“有4种用法,分别是局部变量、普通变量、普通函数和类成员,类成员还包括类成员变量和类成员函数”时,就知道知识为什么可以性感。
关于C++,我从三个大方向去总结。
- 面向对象C++
- 泛型编程C++
- STL
面向对象C++主要是C++语言的基础,泛型编程C++主要基于模板,STL不言而喻就是结合了语言基础和模板而来的编程库。
本文是所有文章的目录,有些还在创作中,有些已经发布了,但是随着创作的进行也会更改。
本系列所有参考资料主要来源于《C++ Primer(第5版)》及网络上其他作者分享的内容,均经过自我总结后放出。可能有些内容看得多了不知不觉就背诵了原作的原话,如有雷同,还请点明。
1. 面向对象C++
- 类型与变量
- 数组
- 引用
- 指针
- const
- 类与结构体
- 联合体
- 枚举
- 类型转换
- 类型别名(typedef & using)
- 类型推断(auto & decltype)
- 表达式与运算符
- 左值与右值
- 优先级表及左右值
- sizeof运算符
- 函数(声明、定义、传参、返回)
- 函数形参
- 函数重载
- 函数匹配
- 函数指针
- static
- 常量表达式constexpr
- const与constexpr
- lambda表达式
- 可调用对象
- 内存对齐
- 类内存布局
- 初始化
- 构造函数
- 对象移动
- this
- mutable
- 运行时类型识别RTTI(typeid & dynamic_cast)
2. 泛型编程C++
- 模板
- 函数模板
- 类模板
- 成员模板
3. STL
一、IO
二、容器
三、算法
四、智能指针
- shared_ptr
- unique_ptr
- weak_ptr