概述
在C语言中,强制类型转换是通过直接转换为特定类型的方式来实现的,类似于下面的代码。
float fNumber = 66.66f;// C语言的强制类型转换int nData = (int)fNumber;
这种方式可以在任意两个类型间进行转换,太过随意和武断,很容易带来一些难以发现的隐患和问题。C++为了向下兼容,保留了这种方式,但新增了四个用于强制类型转换的关键字,分别是:const_cast、reinterpret_cast、static_cast和dynamic_cast。下面逐一介绍这四个关键字的使用场景和注意事项。
const_cast
1、const_cast用于去除常量指针和常量引用的const属性。注意:如果目标不是常量指针和常量引用,则会编译报错。
const int nNumber = 66;// 常量指针const int *pData = &nNumber;int *pData2 = const_cast<int *>(pData);// 常量引用const int &nTemp = nNumber;int &nTemp2 = const_cas