以下是 C++ 关键字的分类汇总(基于 C++23 标准),按功能分组并标注了部分关键字的引入版本:
1. 基础关键字
关键字 | 描述 |
---|---|
int , char |
基本数据类型(bool , float , double , void 等)。 |
if , else |
条件分支。 |
for , while |
循环控制。 |
switch , case , default |
多分支选择。 |
break , continue |
中断循环或 switch 语句。 |
return |
函数返回值。 |
2. 面向对象编程 (OOP)
关键字 | 描述 |
---|---|
class |
定义类(默认成员为私有)。 |
struct |
定义结构体(默认成员为公有)。 |
public /private /protected |
访问控制修饰符。 |
virtual |
声明虚函数或虚继承。 |
override (C++11) |
显式标记覆盖基类虚函数。 |
final (C++11) |
禁止类被继承或虚函数被覆盖。 |
this |
指向当前对象的指针。 |
friend |
声明友元(允许访问私有成员)。 |
3. 类型相关
关键字 | 描述 |
---|---|
auto (C++11) |
自动类型推断(如 auto x = 42; )。 |
decltype (C++11) |
推导表达式类型(如 decltype(x) y; )。 |
const |
定义常量或常量成员函数(不可修改)。 |
volatile |
标记变量可能被外部修改(避免编译器优化)。 |
mutable |
允许在 const 成员函数中修改成员变量。 |
using |
类型别名(替代 typedef )或引入命名空间。 |
typedef |
定义类型别名(如 typedef int MyInt; )。 |
4. 内存管理
关键字 | 描述 |
---|---|
new /delete |
动态内存分配与释放。 |
static |
静态变量(生命周期延长)或静态成员。 |
extern |
声明外部链接的变量或函数。 |
register (弃用) |
建议编译器将变量放入寄存器(C++17 后弃用)。 |
5. 模板与泛型编程
关键字 | 描述 |
---|---|
template |
定义函数模板或类模板。 |
typename |
声明模板中的依赖类型(如 typename T::value_type )。 |
requires (C++20) |
约束模板参数(配合概念使用)。 |
concept (C++20) |
定义模板参数约束(如 concept Integral = ... )。 |
6. 现代 C++ 新增关键字
关键字 | 描述 |
---|---|
nullptr (C++11) |
空指针常量(替代 NULL )。 |
constexpr (C++11) |
编译时常量或常量表达式函数。 |
noexcept (C++11) |
声明函数不抛出异常。 |
thread_local (C++11) |
线程局部存储(每个线程独立副本)。 |
alignas (C++11) |
指定变量对齐方式(如 alignas(16) int x; )。 |
char8_t (C++20) |
UTF-8 字符类型。 |
co_await /co_yield (C++20) |
协程支持。 |
7. 运算符重载与类型转换
关键字 | 描述 |
---|---|
operator |
重载运算符(如 operator+ )。 |
explicit |
禁止隐式类型转换(用于构造函数或转换函数)。 |
dynamic_cast |
运行时类型检查的转换(用于多态类型)。 |
static_cast |
编译时类型转换(如基本类型转换)。 |
const_cast |
移除 const 或 volatile 修饰符。 |
reinterpret_cast |
低层比特位重新解释(慎用)。 |
8. 其他重要关键字
关键字 | 描述 |
---|---|
namespace |
定义命名空间(防止命名冲突)。 |
enum /enum class (C++11) |
定义枚举类型(enum class 是强类型枚举)。 |
try /catch /throw |
异常处理机制。 |
asm |
内联汇编代码(平台相关)。 |
goto |
无条件跳转(通常不推荐使用)。 |
完整列表(部分)
C++ 共有 97 个关键字 (不同标准版本略有增减),例如:
alignof
, and
, and_eq
, bitand
, bitor
, compl
, not
, not_eq
, or
, or_eq
, xor
, xor_eq
, signed
, unsigned
, wchar_t
等。
总结
- C++11 及后续版本 新增了
auto
,nullptr
,constexpr
,noexcept
,thread_local
,concept
等关键字。 - 部分关键字(如
and
,or
,not
)是运算符的替代表示(等价于&&
,||
,!
)。 - 避免使用保留关键字作为标识符(如
int class = 5;
非法)。