代码点读机 / C++ / const_cast

const_cast C++ · 关键字

显式类型转换运算符,专门用来增加或移除对象的 const/volatile 限定;常用来调用旧接口,但修改原本 const 的对象是未定义行为。

怎么用

const_cast<目标类型>(表达式)

小例子

const int a = 10;
const int* p = &a;
int* q = const_cast<int*>(p);

编译结果

q 指向 a,但通过 q 修改 a 是未定义行为

提醒:能不用就不用;真正需要修改时说明设计可能有问题

官方文档:https://en.cppreference.com/w/cpp/language/const_cast

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← C++全部词条