if
switch
for
while
do-while
continue
break
goto
return
inline
noexcept
throw
try
catch
decltype
auto
alignas
const
volatile
constexpr
nullptr
typedef
static_cast
dynamic_cast
const_cast
reinterpret_cast
new
delete
this
friend
override
final
explicit
static
这是一份对可以使用的 C++ 语言构造的简要参考。
基本概念
注释 ASCII 码表 名字与标识符 类型 - 基础类型 对象 - 作用域 - 生存期 定义与单一定义规则(ODR) 名字查找 有限定 - 非限定 内存模型与数据竞争 翻译阶段 main() 函数
C++ 关键字
预处理器
#if - #ifdef - #ifndef #define - # - ## - #include #error - #pragma - #line
表达式
值类别 求值顺序与序列顺序 常量表达式 运算符 赋值运算符 - 算术运算符 自增、自减运算符 逻辑运算符 - 比较运算符 成员访问与间接运算符 函数调用、逗号、三元运算符 sizeof - alignof(C++11) new - delete - typeid 运算符重载 运算符优先级 类型转换 隐式 - 显式 - 用户定义 static_cast - dynamic_cast const_cast - reinterpret_cast 字面量 布尔 - 整数 - 浮点 字符 - 字符串 nullptr (C++11) 用户定义 (C++11)
sizeof
alignof
typeid
声明
命名空间声明 命名空间别名 左值与右值引用 指针 - 数组 枚举类型与枚举符 存储持续期与连接性 语言连接性 内嵌汇编 const/volatile - constexpr(C++11) decltype(C++11) - auto(C++11) alignas(C++11) typedef - 类型别名(C++11) 详细类型说明符 特性(C++11) static_assert(C++11)
static_assert
初始化
默认初始化 值初始化(C++03) 复制初始化 直接初始化 聚合初始化 列表初始化(C++11) 引用初始化 非局部变量的静态初始化 零初始化 - 常量初始化 非局部变量的动态初始化 有序的 - 无序的
函数
函数声明 默认实参 可变实参 Lambda 表达式(C++11) inline 说明符 依赖实参的名字查找 重载解析 运算符重载 重载集的地址
语句
if - switch for - 用于范围的 for(C++11) while - do-while continue - break - goto - return synchronized 和 atomic(TM TS)
do
synchronized
atomic
类
类类型 - 联合类型 数据成员 - 成员函数 静态成员 - 嵌套类 派生类 - using 声明 虚函数 - 抽象类 成员访问 - friend override(C++11) - final(C++11) 位域 - this 指针 构造函数与成员初始化式列表 默认构造函数 - 析构函数 复制构造函数 - 复制赋值运算符 移动构造函数(C++11) - 移动赋值运算符(C++11) 转换构造函数 - explicit 说明符
using
模板
模板形参与实参 类模板 - 函数模板 类成员模板 变量模板(C++14) 模板实参推导 显式特化 类模板推导(C++17) 部分特化 参数包(C++11) - sizeof...(C++11) 折叠表达式(C++17) 依赖名称 - SFINAE 约束与概念 (概念 TS)
sizeof...
异常
throw 表达式 try-catch 块 函数 try 块 noexcept 说明符(C++11) noexcept 运算符(C++11) 动态异常说明(C++17 前)
杂项
C++ 的历史 扩充 std 命名空间 未定义行为 RAII - 三/五/零规则 As-if 规则 - 复制消除 空基类优化 pImpl