C++核心内容和机制
c++编程语言升级到目前最新的C++20,已经变得非常的庞大复杂了。但是核心内容从C++98基本就固定下来了,从C++11到20最大的变化还是在标准库方面。
这里是一份核心内容的清单。还有待完善。
注:以下内容不局限于版本。
一. 基础知识
-
数据类型和POD/Trivial 数据类型;
-
类型转换;
-
NULL和nullptr;
-
操作符重载;
-
全局静态变量和成员静态变量的申明和初始化;
-
左值和右值
-
移动语意(std::move和std::forward)
-
Lambda和可调用类型(仿函数)
-
命名重整和namespace
-
类型重定义
-
auto和decltype
-
返回值优化_return value optimization RVO
二. 面向对象
-
多态和虚函数表
-
struct和class的区别
-
构造函数初始化列表
-
大三律和大五律
-
菱形继承
-
虚析构函数
-
友元
三. 模板和范型
-
STL
-
特化
-
类模板与函数模板
-
多参数
-
模板元编程
-
类型萃取技术 —— type traits
-
迭代器和迭代器类型
-
算法库
-
concept (C++20)
-
SFINAE
四. 内存和资源管理
-
内存布局和内存模型
-
placement new 和 operator new
-
智能指针;
-
数组和指针
-
野指针和悬挂指针
-
内存泄漏
-
memcpy系列和POD
-
RAII
-
右值引用和移动语义
五. 字符串
-
char*/char[]和std::string
-
字符串结束符
-
宽字节和unicode
六. 标准库
-
Thread
-
Coroutines (C++20)
-
IO Stream
-
filesystem
-
datetime
-
reg express
-
本地化
七. 技巧和常见问题
-
循环引用和前置声明
-
访问越界和段错误
-
异常和错误
-
引用计数技术
-
句柄技术