`
huobengluantiao8
  • 浏览: 1033498 次
文章分类
社区版块
存档分类
最新评论

C++强制类型转换

 
阅读更多


static_cast<the_type_to_convert_to>(expression) #从字面上来看,静态转换即编译时刻执行数据类型检测,当代码执行的时候不会去检测.

dynamic_cast<the_type_to_convert_to>(expression) #顾名思义,动态转换即在代码执行的时候进行数据类型检测,编译时不去检测数据类型.

const_cast<the_type_to_convert_to>(expression) #顾名思义,如果(expression) 是const类型则转换后(expression) 变为非const类型,如果(expression) 是非const类型则转换后变为const类型

reinterpret_cast<the_type_to_convert_to>(expression) #顾名思义,这个转换不会进行类型安全检测, 如果向下进行类型转换可能存在数据丢失.


重要部分:

强制类型转换,就是把不同类型的数据格式进行转换,但是因为数据格式的不同,那么在内存中的占位也不一样,因此在强制转换的过程中会存在数据丢失.

Ex, int 类型和long, char之间如果进行转换.

父类和子类之间的强制类型转换.

baseClass* bClass = new baseClass();

deriveClass* dClass = dynamic_cast<deriveClass*>(bClass);

dynamic_cast与static_cast之间的区别在于, dynamic_cast操作符在运行时检查转换的有效性,而static_cast操作符则不然,编译器依赖编码人员来保证static_cast操作的有效性,因此应该使用dynamic_cast在类层次结构中执行向上和向下的强制转换操作,同时还应该检查转换的结果是否为空.



分享到:
评论

相关推荐

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

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

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

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

    C++4种强制类型转换

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

    C++的cast强制类型转换

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

    C++ 中的强制类型转换

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

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

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

    c++四种强制类型转换

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

    基于c++强制类型转换的(总结)详解

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

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

    一说起强制类型转换大家都很熟悉,相信很多学习完C++的朋友还在使用C语言的强制类型的方式 (类型)变量. C++其实也具有自己的一套强制类型转换它们分明是:static_cast reinterpret_cast const_cast dynamic_cast...

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

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

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

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

    C++的类型转换详细介绍

     C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:  TYPE b = (TYPE)a   C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。  static_cast 静态类型转换。如int转换成char  ...

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

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

    C++四种强制类型转换

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

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

    c++中提供了四种新的强制转换分别是:const_cast、dynamic_cast、reinterpret_cast、static_cast.这四种转换类型,每一种都适用于特定的目的:const_cast 一般用于强制取消对象的常量性。它是唯一能够做到这一点的...

    c++四种强制类型装换

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

Global site tag (gtag.js) - Google Analytics