概述

        在C语言中,强制类型转换是通过直接转换为特定类型的方式来实现的,类似于下面的代码。

float fNumber = 66.66f;
// C语言的强制类型转换
int nData = (int)fNumber;

        这种方式可以在任意两个类型间进行转换,太过随意和武断,很容易带来一些难以发现的隐患和问题。C++为了向下兼容,保留了这种方式,但新增了四个用于强制类型转换的关键字,分别是:const_castreinterpret_caststatic_castdynamic_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
04-02 23:16