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++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。
C++ 四种强制类型转换的总结
C++4种强制类型转换 C++4种强制类型转换 C++4种强制类型转换 C++4种强制类型转换
C++的cast强制类型转换,C++的类型转换方式使用教程
C++ 中的强制类型转换,显示转换也成为强制类型转换(cast),包括以下列名字命名的强制类型转换操作符:static_cast、dynamic_cast、const_cast、reinterpret_cast。
1.1 强制类型转换 大家都知道在C语言里强制类型转换的方法非常简单,只要在要转换的变量... 在C++语言里为了让强制类型转换更明显,更安全,所以把不同情况下的强制类型转换分为四种,分别为: static_cast
c++四种强制类型转换 学习C++的可以好好的看看
本篇文章对C++中的强制类型转换进行了详细的分析介绍。需要的朋友参考下
一说起强制类型转换大家都很熟悉,相信很多学习完C++的朋友还在使用C语言的强制类型的方式 (类型)变量. C++其实也具有自己的一套强制类型转换它们分明是:static_cast reinterpret_cast const_cast dynamic_cast...
本文详细介绍了C++中的四个用与强制类型转换的运算符:用来修改类型的const 或volatile 属性的const_cast,用来修改操作数类型的reinterpret_cast,static_cast,dynamic_cast
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,...
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 static_cast 静态类型转换。如int转换成char ...
本篇文章是对C++中四种强制类型转换的区别进行了详细的分析介绍,需要的朋友参考下
四种强制类型转换:static_cast const_cast dynamic_cast reinterpret_cast 1、static_cast 编译器隐式执行的任何类型转换都可以由static_cast显示完成。 ①用于类层次结构中基类和子类之间指针或引用的...
c++中提供了四种新的强制转换分别是:const_cast、dynamic_cast、reinterpret_cast、static_cast.这四种转换类型,每一种都适用于特定的目的:const_cast 一般用于强制取消对象的常量性。它是唯一能够做到这一点的...
详解c++四种强制类型转换的用法和区别,你一定会用到