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; 非法)。
相关推荐
田里的水稻42 分钟前
C++_数据类型和数据结构
java·数据结构·c++
notfindjob2 小时前
Opencv C++ 教程-人脸识别
c++·opencv·计算机视觉
极客智造2 小时前
OpenCV C++ 核心:Mat 与像素操作全解析
c++·人工智能·opencv
极客智造2 小时前
OpenCV C++ 色彩空间详解:转换、应用与 LUT 技术
c++·人工智能·opencv
小江村儿的文杰2 小时前
理解UE4中C++17的...符号及enable_if_t的用法及SFINAE思想
数据结构·c++·ue4
mljy.3 小时前
C++《C++11》(上)
c++
艾莉丝努力练剑3 小时前
GCC编译器深度解剖:从源码到可执行文件的全面探索
c++·ide·经验分享·gcc
源代码•宸3 小时前
Leetcode—721. 账户合并【中等】
c++·经验分享·算法·leetcode·并查集
melonbo3 小时前
c++工程如何提供http服务接口
c++·http
程序喵大人4 小时前
写C++十年,我现在怎么设计类和模块?(附真实项目结构)
开发语言·c++·类和模板