const_cast 详解及使用场景

1. 基本介绍

const_cast是 C++ 中专门用于添加或移除变量的 const 和 volatile 限定符​ 的类型转换运算符。它是唯一能够移除 const 属性的 C++ 风格转换。

核心特性

// 语法
const_cast<新类型>(表达式)

// 只能修改 const/volatile 限定符,不能改变基本类型
// 新类型必须是指针、引用或指向成员的指针

2. 主要功能

2.1 移除 const 限定符

// 从 const 到非 const
const int x = 10;
int* p = const_cast<int*>(&x);  // 移除 const
*p = 20;  // 危险!未定义行为,因为 x 是真正的 const

// 从 const 引用到非 const 引用
const std::string& constStr = "hello";
std::string& str = const_cast<std::string&>(constStr);
str.append(" world");  // 如果原对象不是真正的 const,则安全

2.2 添加 const 限定符

// 从非 const 到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浩瀚之水_csdn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值