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; 非法)。
相关推荐
j7~15 分钟前
【Linux网络加餐】(篇六)网络版计算器(上):模板方法模式、序列化与 JSON
linux·c++·json·序列化·反序列化·网络版计算机
weixin_3077791316 分钟前
C++代码实现MATLAB中的ode45函数功能
开发语言·c++·算法·matlab
张小姐的猫24 分钟前
【AI大模型接入SDK】 —— 数据管理 & 与Session模块进行联动
数据结构·数据库·c++·人工智能·python·chatgpt
東隅已逝,桑榆非晚1 小时前
vector(模拟实现)
c++·笔记·学习
蒸蒸yyyyzwd2 小时前
cpp 选手备战秋招学习笔记 day36
c++
用户69586106727112 小时前
从源码到加载器:__attribute__((constructor)) / __attribute__((destructor))的跨平台实现原理详解
c++
余额瞒着我当琳3 小时前
C++多态深入解析:多态概念,多态实现条件,虚函数表与内存分布,常见问题及注意事项
c++·算法
ocean21034 小时前
2025-2026年C++专题大厂面试高频问题
开发语言·c++·面试
程序猿编码4 小时前
扔掉 Python!纯 C++ 本地跑扩散 TTS,GGML 加持,支持 RK3588 NPU 加速
c++·计算机视觉·大模型·transformer·rk3588·推理·ggml
郝学胜-神的一滴4 小时前
C++20模板元编程 02:吃透模板基础核心四大核心知识点
开发语言·数据结构·c++·程序人生·软件工程·visual studio