以下是 C++ 关键字的系统总结,按功能分类整理,并标注 C++11/14/17/20 新增特性:


一、基础类型与修饰符

关键字

说明

bool

布尔类型(true/false)

char

字符类型(1字节)

int

整型

float

单精度浮点

double

双精度浮点

void

无类型(用于函数返回值/指针)

wchar_t

宽字符类型

short

短整型

long

长整型

signed

有符号类型

unsigned

无符号类型

类型修饰符

| const| 常量(运行期不可修改) |

| volatile| 防止编译器优化(硬件/多线程场景) |

| mutable| 允许 const 成员修改(仅限类成员) |

| constexpr(C++11) | 编译期常量表达式 |

| consteval(C++20) | 必须编译期求值的常量表达式 |

| constinit(C++20) | 强制静态初始化 |


二、存储类与作用域

关键字

说明

auto(C++11前)

自动类型推断(C++11起为类型推导)

register

建议编译器将变量存入寄存器(已弃用)

static

静态存储期/文件内可见性

extern

外部链接声明

thread_local(C++11)

线程局部存储


三、流程控制

关键字

说明

if/ else

条件分支

switch/ case/ default

多路选择

for/ while/ do

循环

break

跳出循环/switch

continue

跳过本次循环

goto

无条件跳转(慎用)

return

函数返回


四、面向对象编程

类与对象

关键字

说明

class

类定义

struct

结构体(默认 public 继承)

union

联合体(共享内存)

enum

枚举

enum class(C++11)

强类型枚举

访问控制

| public| 公有成员 |

| protected| 保护成员 |

| private| 私有成员 |

特殊成员函数

| this| 当前对象的指针 |

| friend| 友元(突破封装访问私有成员) |

| virtual| 虚函数(多态) |

| override(C++11) | 显式重写虚函数 |

| final(C++11) | 禁止进一步重写/继承 |


五、函数相关

关键字

说明

inline

建议内联展开

operator

运算符重载

explicit

禁止隐式转换

noexcept(C++11)

不抛出异常

throw

抛出异常(C++17弃用动态异常规范)

try/ catch

异常处理

函数参数与返回值

| void| 无返回值 |

| return| 返回值 |

| ...| 可变参数(C风格) |


六、模板与泛型

关键字

说明

template

模板定义

typename

模板类型参数(也可用 class

class

模板类型参数(同 typename

concept(C++20)

约束模板参数

requires(C++20)

概念约束表达式


七、命名空间

关键字

说明

namespace

命名空间定义

using

引入命名空间/类型别名


八、内存管理

关键字

说明

new/ delete

动态内存分配/释放

malloc/ free

C风格内存管理(非关键字)

alignas(C++11)

指定内存对齐

alignof(C++11)

查询内存对齐


九、类型推导与别名

关键字

说明

auto(C++11)

自动类型推导

decltype(C++11)

推导表达式类型

typedef

类型别名

using

类型别名(更推荐)


十、并发与多线程 (C++11+)

关键字

说明

thread_local

线程局部存储

atomic

原子操作(需 <atomic>

mutex

互斥锁(需 <mutex>


十一、其他重要关键字

关键字

说明

sizeof

获取类型/对象大小

typeid

运行时类型信息(RTTI)

dynamic_cast

运行时类型转换(需多态)

static_cast

编译期类型转换

reinterpret_cast

低级别重新解释

const_cast

移除 const/volatile

export

模板导出(极少使用)

asm

嵌入汇编代码


十二、C++20/23 新增

关键字

说明

concept

概念(约束模板)

requires

约束表达式

co_await/ co_yield/ co_return

协程支持

import/ module

模块系统


注意事项

  1. 关键字不可作为标识符(如变量名、函数名)。

  2. 替代方案

    • nullptr(C++11)代替 NULL

    • using代替 typedef

  3. 废弃特性

    • registerauto的旧语义。

    • throw(...)异常规范(C++17 后移除)。

更多推荐