C++ 四类类型转换,static_cast, const_cast, reinterrupt_cast, dynamic_cast给v

stacic_cast

作用:对可转换的类型进行相应的类型转换

示例:

#include<iostream>
using namespace std;
int main() {
	int a = 1;
	int * b = (int *)a; //错误使用
	//int *c = static_cast<int *>(a);//此处编译报错
    
    int i = 5, j = 2;
	double k = i / j;
	cout << k << endl;  //输出为2
	double kk = static_cast<double>(i) / j;//进行强制转换以便执行浮点数除法,正确使用
	cout << kk << endl;
	return 0;
}

说明:传统C语言的强制转换,可以编译通过,但是将int类型转换为int*是没有意义的,有的时候类似此类的转换是有风险的,所以针对上述转换滥用的问题,C++引入了相关的类型转换,如下面代码,当()中的内容与<>中的内容不能相互转换时,编译会报错,这样会方便查找错误,并且不会产生隐患。

const_cast

const_cast只能消除运算对象的底层const,因此const_cast中<>中的类型必须是,指针、引用或指向对象类型的成员的指针

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值