C++强制转换

  • Post author:
  • Post category:其他




C++强制转换

C++中经常会出现数据的类型转换,例如数组转换为指针,int转换为long,这些都属于隐式转换,更重要的是C++提供了四种强制的显示类型转换:


static_cast,dynamic_cast,const_cast和reinterpret_cast。


其中dynamic_cast支持运行时类型识别。



static_cast

任何具有明确定义的转换,只要不包含底层const都可以使用static_cast进行转换:

int j = 0;
double k = static_cast<double>(j);
//将j从int显示转换成double
int l = static_cast<int>(k);
//将double显示转换成int,不在乎精度的丢失



dynamic_cast

见我的博客

dynamic_cast



const_cast

const_cast只能改变运算对象的底层const,实际并不会改变,只是一个const away的过程,只是将限定符去掉,但对象仍然不可以改变。见


const_cast详解



reinterpret_cast



版权声明:本文为qq_42016124原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。