C++关键字汇总

以下是 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 移除 constvolatile 修饰符。
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; 非法)。
相关推荐
froxy3 小时前
C++11 引入了的新特性与实例说明
开发语言·c++
珊瑚里的鱼3 小时前
第一讲 | 解锁C++编程能力:基础语法解析
开发语言·c++·笔记·visualstudio·学习方法·visual studio
程序员yt3 小时前
211 本硕研三,已拿 C++ 桌面应用研发 offer,计划转音视频或嵌入式如何规划学习路线?
c++·学习·音视频
进击的_鹏4 小时前
【C++】多态
开发语言·c++
Aurora_wmroy4 小时前
算法竞赛备赛——【数据结构】链表
数据结构·c++·算法·链表·蓝桥杯
ん贤4 小时前
单调栈详解【C/C++】
数据结构·c++·算法·贪心算法·单调栈
C++ 老炮儿的技术栈6 小时前
vector和list的区别是什么
开发语言·c++·笔记·学习
水饺编程6 小时前
计算机基础:编码03,根据十进制数,求其原码
c语言·c++·windows·mfc
kanhao1006 小时前
【C++学习】Makefile 栈大小设置:正确位置分析
开发语言·c++·学习
<但凡.7 小时前
C++修炼:内存管理
c++·算法