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; 非法)。
相关推荐
liulilittle14 分钟前
C++/CLI与标准C++的语法差异(一)
开发语言·c++·.net·cli·clr·托管·原生
小狄同学呀20 分钟前
VS插件报错,g++却完美编译?API调用错因分析
c++
程序员编程指南23 分钟前
Qt 数据库连接池实现与管理
c语言·数据库·c++·qt·oracle
小乖兽技术43 分钟前
C#与C++交互开发系列(二十四):WinForms 应用中嵌入C++ 原生窗体
c++·c#·交互
张北北.1 小时前
【深入底层】C++开发简历4+4技能描述6
java·开发语言·c++
刚入坑的新人编程2 小时前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法
破刺不会编程3 小时前
linux线程概念和控制
linux·运维·服务器·开发语言·c++
程序员编程指南4 小时前
Qt OpenGL 集成:开发 3D 图形应用
c语言·数据库·c++·qt·3d
小徐不徐说4 小时前
动态规划:从入门到精通
数据结构·c++·算法·leetcode·动态规划·代理模式
程序员编程指南5 小时前
Qt 网络编程进阶:RESTful API 调用
c语言·网络·c++·qt·restful