C++关键字
以下是 C++ 关键字的系统总结,按功能分类整理,并标注 C++11/14/17/20 新增特性:
一、基础类型与修饰符
|
关键字 |
说明 |
|---|---|
|
|
布尔类型(true/false) |
|
|
字符类型(1字节) |
|
|
整型 |
|
|
单精度浮点 |
|
|
双精度浮点 |
|
|
无类型(用于函数返回值/指针) |
|
|
宽字符类型 |
|
|
短整型 |
|
|
长整型 |
|
|
有符号类型 |
|
|
无符号类型 |
类型修饰符
| const| 常量(运行期不可修改) |
| volatile| 防止编译器优化(硬件/多线程场景) |
| mutable| 允许 const 成员修改(仅限类成员) |
| constexpr(C++11) | 编译期常量表达式 |
| consteval(C++20) | 必须编译期求值的常量表达式 |
| constinit(C++20) | 强制静态初始化 |
二、存储类与作用域
|
关键字 |
说明 |
|---|---|
|
|
自动类型推断(C++11起为类型推导) |
|
|
建议编译器将变量存入寄存器(已弃用) |
|
|
静态存储期/文件内可见性 |
|
|
外部链接声明 |
|
|
线程局部存储 |
三、流程控制
|
关键字 |
说明 |
|---|---|
|
|
条件分支 |
|
|
多路选择 |
|
|
循环 |
|
|
跳出循环/switch |
|
|
跳过本次循环 |
|
|
无条件跳转(慎用) |
|
|
函数返回 |
四、面向对象编程
类与对象
|
关键字 |
说明 |
|---|---|
|
|
类定义 |
|
|
结构体(默认 public 继承) |
|
|
联合体(共享内存) |
|
|
枚举 |
|
|
强类型枚举 |
访问控制
| public| 公有成员 |
| protected| 保护成员 |
| private| 私有成员 |
特殊成员函数
| this| 当前对象的指针 |
| friend| 友元(突破封装访问私有成员) |
| virtual| 虚函数(多态) |
| override(C++11) | 显式重写虚函数 |
| final(C++11) | 禁止进一步重写/继承 |
五、函数相关
|
关键字 |
说明 |
|---|---|
|
|
建议内联展开 |
|
|
运算符重载 |
|
|
禁止隐式转换 |
|
|
不抛出异常 |
|
|
抛出异常(C++17弃用动态异常规范) |
|
|
异常处理 |
函数参数与返回值
| void| 无返回值 |
| return| 返回值 |
| ...| 可变参数(C风格) |
六、模板与泛型
|
关键字 |
说明 |
|---|---|
|
|
模板定义 |
|
|
模板类型参数(也可用 |
|
|
模板类型参数(同 |
|
|
约束模板参数 |
|
|
概念约束表达式 |
七、命名空间
|
关键字 |
说明 |
|---|---|
|
|
命名空间定义 |
|
|
引入命名空间/类型别名 |
八、内存管理
|
关键字 |
说明 |
|---|---|
|
|
动态内存分配/释放 |
|
|
C风格内存管理(非关键字) |
|
|
指定内存对齐 |
|
|
查询内存对齐 |
九、类型推导与别名
|
关键字 |
说明 |
|---|---|
|
|
自动类型推导 |
|
|
推导表达式类型 |
|
|
类型别名 |
|
|
类型别名(更推荐) |
十、并发与多线程 (C++11+)
|
关键字 |
说明 |
|---|---|
|
|
线程局部存储 |
|
|
原子操作(需 |
|
|
互斥锁(需 |
十一、其他重要关键字
|
关键字 |
说明 |
|---|---|
|
|
获取类型/对象大小 |
|
|
运行时类型信息(RTTI) |
|
|
运行时类型转换(需多态) |
|
|
编译期类型转换 |
|
|
低级别重新解释 |
|
|
移除 const/volatile |
|
|
模板导出(极少使用) |
|
|
嵌入汇编代码 |
十二、C++20/23 新增
|
关键字 |
说明 |
|---|---|
|
|
概念(约束模板) |
|
|
约束表达式 |
|
|
协程支持 |
|
|
模块系统 |
注意事项
-
关键字不可作为标识符(如变量名、函数名)。
-
替代方案:
-
用
nullptr(C++11)代替NULL。 -
用
using代替typedef。
-
-
废弃特性:
-
register、auto的旧语义。 -
throw(...)异常规范(C++17 后移除)。
-
更多推荐
所有评论(0)