C++ 关键字和修饰符是构成语言核心的保留字和标识符,它们为程序员提供了强大的功能来控制程序的行为和结构。以下是它们的分类与总结:


1. 基本数据类型

  • int:整数类型
  • float:浮点数类型
  • double:双精度浮点数类型
  • char:字符类型
  • bool:布尔类型
  • void:无类型
  • wchar_t:宽字符类型
  • char8_t / char16_t / char32_t:C++11 和 C++20 引入的 UTF 字符类型

2. 类型修饰符

  • signed:有符号类型修饰符
  • unsigned:无符号类型修饰符
  • short:短整型修饰符
  • long:长整型修饰符(如 long long

3. 存储类说明符

  • auto:自动推导类型(C++11 开始支持)
  • register:寄存器变量(已被废弃)
  • static:静态存储类
  • extern:外部链接
  • mutable:允许修改常量成员(仅在类中使用)

4. 访问控制

  • public:公有访问权限
  • private:私有访问权限
  • protected:受保护访问权限

5. 控制流语句

  • if / else:条件分支
  • switch / case / default:多分支选择
  • while / do / for:循环控制
  • break:跳出循环或 switch
  • continue:跳过本次循环
  • return:返回函数值
  • goto:无条件跳转(不推荐使用)

6. 类和对象

  • class:定义类
  • struct:定义结构体(与 class 的主要区别是默认访问权限不同)
  • union:定义联合体
  • this:指向当前对象
  • new / delete:动态内存分配和释放

7. 常量和指针相关

  • const:常量修饰符
  • volatile:防止编译器优化(变量可能随外部环境变化)
  • nullptr:空指针(C++11 引入)

8. 异常处理

  • try / catch / throw:异常处理机制

9. 模板和泛型

  • template:模板声明
  • typename:标明模板参数类型
  • decltype:推导表达式的类型(C++11 引入)

10. 命名空间

  • namespace:命名空间声明
  • using:引入命名空间或类型别名
  • inline:内联函数或命名空间

11. 操作符重载

  • operator:定义操作符重载

12. 类型转换

  • static_cast:静态类型转换
  • dynamic_cast:运行时类型转换(用于多态)
  • const_cast:移除或添加 const
  • reinterpret_cast:低级别重新解释类型

13. 并发相关(C++11 及之后)

  • thread_local:线程本地存储
  • atomic:原子操作支持

14. 其他关键字

  • enum / enum class:枚举类型
  • friend:友元类或函数
  • virtual:虚函数或虚继承
  • override:重写父类的虚函数(C++11 引入)
  • final:禁止继承或重写(C++11 引入)
  • explicit:防止隐式转换构造函数
  • constexpr:编译期常量(C++11 引入,C++20 加强)
  • alignas / alignof:对齐控制(C++11 引入)
  • concept:概念(C++20 引入,用于约束模板参数)

15. 特殊关键字

  • sizeof:获取类型或变量大小
  • typeid:运行时类型信息
  • static_assert:静态断言(C++11 引入)