【C++】C++关键字概述

在 C++ 中,关键字(Keywords) 是语言预定义的保留字,具有特殊含义,不能用作标识符(如变量名、函数名等)。


核心关键字分类

1. 基本类型
  • int, char, bool, float, double, void
  • short, long, signed, unsigned
  • auto(自动类型推导)
2. 类型修饰符
  • const(常量)
  • volatile(防止编译器优化)
  • mutable(允许在 const 成员函数中修改)
3. 复合类型
  • struct, class, union, enum
  • using(类型别名或引入命名空间)
  • typedef(类型别名,C++11 后推荐用 using
4. 存储类别
  • static(静态存储期)
  • extern(外部链接)
  • register(建议寄存器存储,已弃用)
  • thread_local(线程局部存储)
5. 函数相关
  • virtual(虚函数)
  • override(显式重写虚函数)
  • final(禁止重写/继承)
  • explicit(禁止隐式转换)
  • inline(内联函数)
  • friend(友元)
6. 控制流
  • if, else, switch, case, default
  • for, while, do, break, continue
  • goto, return
7. 异常处理
  • try, catch, throw, noexcept
8. 动态内存
  • new, delete, new[], delete[]
9. 模板编程
  • template, typename
  • requires(C++20 概念约束)
10. 命名空间
- `namespace`, `using namespace`
11. 类型转换
- `static_cast`, `dynamic_cast`, `const_cast`, `reinterpret_cast`  
- `typeid`(获取类型信息)
12. 其他重要关键字
- `this`(当前对象指针)  
- `nullptr`(空指针)  
- `sizeof`(类型/对象大小)  
- `operator`(重载运算符)  
- `asm`(内联汇编)

C++11/14/17/20 新增关键字

关键字用途标准版本
constexpr编译时常量/函数C++11
decltype推导表达式类型C++11
noexcept声明函数不抛出异常C++11
nullptr类型安全的空指针C++11
alignas指定对齐方式C++11
alignof获取对齐要求C++11
thread_local线程局部存储C++11
char16_tUTF-16 字符类型C++11
char32_tUTF-32 字符类型C++11
consteval立即函数(编译时执行)C++20
concept模板约束(概念)C++20
requires概念约束的子句C++20
co_await协程等待C++20
co_yield协程返回值C++20
co_return协程返回C++20

禁止用作标识符的示例

int class = 10;     // 错误:'class' 是关键字
void delete() {}    // 错误:'delete' 是关键字

完整关键字列表(按字母顺序)

alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, 
case, catch, char, char8_t, char16_t, char32_t, class, compl, concept, 
const, constexpr, const_cast, continue, co_await, co_return, co_yield, 
decltype, default, delete, do, double, dynamic_cast, else, enum, explicit, 
export, extern, false, float, for, friend, goto, if, inline, int, long, 
mutable, namespace, new, noexcept, not, not_eq, nullptr, operator, or, 
or_eq, private, protected, public, register, reinterpret_cast, requires, 
return, short, signed, sizeof, static, static_assert, static_cast, struct, 
switch, template, this, thread_local, throw, true, try, typedef, typeid, 
typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, 
xor, xor_eq

关键注意事项

  1. 与 C 的差异
    C++ 新增了 class, namespace, dynamic_cast 等关键字,而 C 的关键字如 _Bool, _Complex 不在 C++ 中。
  2. 替代运算符
    and(代替 &&)、or(代替 ||)、not(代替 !)等是标准关键字。
  3. 弃用关键字
    register 在 C++17 后被弃用(但仍是关键字)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴雨日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值