您的位置:首页 > 编程语言 > C语言/C++

C++ 02 4个新的类型转换函数

2013-12-31 21:57 309 查看
1.const_cast
  1 用来移除对象的常量性 const_cast一般多用于指针或引用
2 使用它去除const限定的目的不是为了修改它们的内容
通常是为了函数能过接收这个实际参数

void funct(int &val)

{

cout<<"func is "<<val<<endl;

}

const int val = 100;

funct(const_cast<int&>(val));


2.static_cast
  1 编译器执行的任何隐身转换都可以通过static_cats来转换
  2 当一个较大的算术类型赋值给较小的类型时用static_cast强制转换
  int n = static_cast<int>(3.14); //n=3;
  3 将void*指针转成某一类型的指针
  
   void *p3 = &n;
   int *p2 = static_cast<int*>(p3);

3.reinterpret_cast
  1 通常为操作数的位模式提供比较低层的重新解释 也就是说将数据以二进制存在形式的重新解释
  2 尽可能避免强制转换 尽量使用新的转换方法

4.dynamic_cats<T>(expr)
  执行安全向下转型操作 也就是说支持运行时识别指针或所指向的对象,这是唯一无法用旧式语来进行的转型操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: