`

C++四种强制类型转化的区别

    博客分类:
  • C++
阅读更多

先介绍const_cast和reinterpret_cast:

      const_cast用于消除类型中的const, volatile, __unaligned属性。

      reinterpret_cast主要用于转换不相容的数据类型,特别是在指针类型和非指针类型之间进行转换,当然它也可以用于转换指针之间的转换。

再介绍一对相对立的static_cast和dynamic_cast:

      它们都是c++风格的强制类型转换,不过不具备上面2中转换的特性,即:不能在指针类型和非指针类型之间进行转换,也不能消除类型中的const和volatile属性。

      它们的区别在于:static_cast在编译时刻就验证被转换的变量与目标类型之间是否相容,如果类型转换不合理,就会导致编译时刻错误;dynamic_cast在运行时刻对强制类型转换进行检查。当指针无效时,返回0,若是无效的引用强制类型转换就发生bad_cast异常。

      另外,dynamic_cast不能用于转换没有继承关系的类型,如int转换到double类型。

 

分享到:
评论

相关推荐

    C++ 四种强制类型转换的总结

    C++ 四种强制类型转换的总结

    c++四种强制类型转换

    c++四种强制类型转换 学习C++的可以好好的看看

    C++4种强制类型转换

    C++4种强制类型转换 C++4种强制类型转换 C++4种强制类型转换 C++4种强制类型转换

    c++四种强制类型装换

    详解c++四种强制类型转换的用法和区别,你一定会用到

    浅谈C++中强制类型转换函数

    C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。

    C++的cast强制类型转换

    C++的cast强制类型转换,C++的类型转换方式使用教程

    C++ 中的强制类型转换

    C++ 中的强制类型转换,显示转换也成为强制类型转换(cast),包括以下列名字命名的强制类型转换操作符:static_cast、dynamic_cast、const_cast、reinterpret_cast。

    解析C++中四种强制类型转换的区别详解

    C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新...

    C++四种强制类型转换

    四种强制类型转换:static_cast const_cast dynamic_cast reinterpret_cast  1、static_cast  编译器隐式执行的任何类型转换都可以由static_cast显示完成。  ①用于类层次结构中基类和子类之间指针或引用的...

    C++ 四中常用强制类型转化

    C++四中常用强制类型转化, :static_cast、dynamic_cast、reinterpret_cast、和const_cast

    深入C++四种强制类型转换的总结

    本篇文章是对C++中四种强制类型转换进行了详细的分析介绍,需要的朋友参考下

    C++强制类型转换

    C++强制类型转换的资料,详细介绍了C++特有的四种类型转换机制,供有需要的人下载!

    C++中四种强制类型转换的区别

    使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。  1、static_cast  用法:static_cast (expression)  该运算符把expression转换为type-id类型,但没有运行时类型检查来...

    C++中4种强制类型转换的区别总结

    使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,...

    C++中用于强制类型转换的四个运算符

    本文详细介绍了C++中的四个用与强制类型转换的运算符:用来修改类型的const 或volatile 属性的const_cast,用来修改操作数类型的reinterpret_cast,static_cast,dynamic_cast

    关于C++的强制类型转换浅析

    C++其实也具有自己的一套强制类型转换它们分明是:static_cast reinterpret_cast const_cast dynamic_cast四种类型. 那么肯定会有人好奇C++是不是闲,C语言的强制类型用的舒舒服服的,为什么要新推出来这几个? 新...

    C++中强制类型转换的应用

    1.1 强制类型转换  大家都知道在C语言里强制类型转换的方法非常简单,只要在要转换的变量...  在C++语言里为了让强制类型转换更明显,更安全,所以把不同情况下的强制类型转换分为四种,分别为:  static_cast 

Global site tag (gtag.js) - Google Analytics