C++类型限定符简介

C++ 类型限定符简介

严格意义的类型限定符(Type Qualifiers)

这些直接限定类型的行为,是最正统的“类型限定符”:

限定符 说明
const 不可修改,编译期常量或修饰函数签名(如 const int*
volatile 禁止优化,值可能由外部(如硬件)改变
mutable 允许 const 成员函数中修改此成员变量
restrict C++ 尚未标准支持,GCC/Clang 有扩展(类似 C99)
constexpr C++11 起,编译期常量

与类型/作用域密切相关的修饰符(存储类/函数限定符)

这些虽不属于传统“类型限定符”,但也改变类型/生命周期行为,常混用:

关键字 类别 说明
static 存储类 静态生命周期,函数内变量持久存在;类内不依赖实例
extern 存储类 引用外部符号(如头文件声明变量)
register 存储类(已废弃) 建议放入寄存器(现代编译器忽略)
thread_local 存储类(C++11) 每个线程一份变量
inline 函数限定符 建议编译器内联函数
virtual 函数限定符 表示支持多态
explicit 构造函数限定符 禁止隐式转换
friend 访问控制 允许访问类的私有成员
noexcept 异常限定符(C++11) 表示函数不会抛出异常
final 类/虚函数限定符 表示不能被继承/重写
override 虚函数限定符 表示重写父类虚函数

用于类型推导/模板相关的修饰符(现代 C++)

关键字 C++版本 说明
auto C++11+ 自动类型推导
decltype C++11+ 推导表达式的类型
consteval C++20 编译期求值函数
constinit C++20 编译期初始化全局/静态变量,但不是 constexpr
posted @ 2025-05-23 18:26  _Sylvan  阅读(26)  评论(0)    收藏  举报