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() 函数
main()
C++ 关键词
预处理器
#if - #ifdef - #ifndef #define - # - ## - #include #error - #pragma - #line
表达式
值类别 求值顺序与定序 常量表达式 运算符 赋值 - 算术 自增与自减 逻辑 - 比较 成员访问与间接 调用、逗号、三元 sizeof - alignof(C++11) new - delete - typeid 运算符重载 默认比较(C++20) 运算符优先级 转换 隐式 - 显式 - 用户定义 static_cast - dynamic_cast const_cast - reinterpret_cast 字面量 布尔 - 整数 - 浮点 字符 - 字符串 nullptr(C++11) 用户定义(C++11)
sizeof
alignof
typeid
声明
命名空间声明 命名空间别名 左值与右值引用 指针 - 数组 结构化绑定(C++17) 枚举与枚举项 存储期与链接 语言链接 内联汇编 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 声明 虚函数 - 抽象类 成员访问 - 友元 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 制约与概念 (C++20)
sizeof...
异常
throw 表达式 try-catch 块 函数 try 块 noexcept 指定符(C++11) noexcept 运算符(C++11) 动态异常规定(C++17 前)
杂项
C++ 的历史 扩充命名空间 std 未定义行为 RAII - 三/五/零规则 如同规则 - 复制消除 空基类优化 pImpl