C++ 四类cast强制类型转换

本文介绍了C++中为改进C风格类型转换的缺点引入的四种新操作符:const_cast用于去除const/volatile属性,static_cast用于安全的静态类型转换,dynamic_cast提供运行时类型检查,而reinterpret_cast则用于高风险的位模式重新解释。每种cast的特点和应用场景都在文中详细阐述。
摘要由CSDN通过智能技术生成

引言

C风格的类型转换有不少的缺点:

1. 它可以在任意类型之间转换,这两种转换之间的差别是巨大的,但是传统的c语言风格的类型转换没有区分这些.

2. C风格的转换不容易查找,他由一个括号加上一个标识符组成,(TYPE)EXPRESSION 而这样的东西在C++程序里一大堆。

C++为了克服这些缺点,引进了4新的类型转换操作符,他们是 static_cast 、const_cast 、dynamic_cast 、reinterpret_cast

一. const_cast

const_cast 用于去除 const(volatile)属性,将只读变为可读写

const_cast只针对指针、引用和this指针,其他情况的话就会出错,如下代码所示:

int n = 5;
int *k1 = const_cast<int*>(&n);  //指针
*k1 = 1;
int &k2 = const_cast<int&>(n);   //引用
k2 = 2;
int k3 = const_cast<int>(n);  //编译出错
k3 = 1;                       //编译出错

注意:C++里是const,就是const,外界千变万变,我就不变<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值