旧式的C语言转型方式,是存在缺点的,主要在一下两个方面:
1.它几乎允许你将任何类型转换为任何其它类型。
2.转型是难以识别的。旧式转型的语法结构是由一对小括号加上一个对象名称组成,而小括号和对象名称在C++的任何地方都有可能被使用。
为了解决C旧式转型的特点,C++引入4个新的转型操作符(cast operators):static_cast, const_cast, dynamic_ca...
分类:
编程语言 时间:
2015-01-29 12:47:33
阅读次数:
167
C++的类型转换有四种 const_cast, reinterpret_cast, static_cast, dynamic cast
这边举一个dynamic cast的小例子
#include
using namespace std;
class BaseClass{
public :
int m_iNum;
virtual void foo() {...
分类:
编程语言 时间:
2015-01-19 19:09:47
阅读次数:
127
C++类型转换
const_cast,去const属性。
static_cast,静态类型转换。如int转换成char。
dynamic_cast,动态类型转换。如子类和父类之间的多态类型转换。
reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。
const_cast:
const int& a = 9;
const_cast(a) = 10;
...
分类:
编程语言 时间:
2015-01-16 16:44:10
阅读次数:
170
转型一直不陌生,在java里面用的也比较多,直接"()"一下就搞定了,在C++中,部分转型也可以直接用这种方法搞定,在effective c++中,作者将其归纳为旧式转型。
既然有旧式,那就有新式,新式是形如xx_cast的东西。cast比较纠结,虽然平常用的也还算多,但一直没总结,也就老忘了各自区别和具体用法,接下来大概总结一下。
const_cast
用来移除对象的常量性(是...
分类:
编程语言 时间:
2015-01-06 12:05:17
阅读次数:
177
static_cast可以用来类的上行转换,也可以用来下行转换,但这样可呢有安全问题用来void* 的转换整形之类的非指针转换dymanic_cast用于指针和引用的转换用于上行转换,下行转换回失败如果不是完整的原对象将会失败。const_cast用于转换const属性的对象。 或者移除。class...
分类:
编程语言 时间:
2014-12-29 22:45:01
阅读次数:
184
在C++中,存在类型转换,通常意味着存在缺陷(并非绝对)。所以,对于类型转换,有如下几个原则:(1)尽量避免类型转换,包括隐式的类型转换(2)如果需要类型转换,尽量使用显式的类型转换,在编译期间转换(3)避免使用reinterpret_cast和老式的强制类型转换操作符通常,隐式的类型转换会导致警告...
分类:
编程语言 时间:
2014-12-25 12:59:25
阅读次数:
219
static_cast,dynamic_cast, const_cast, reinterpret_castdynamic_cast比static_cast多了安全检测,判断源和目标有无继承被继承关系,所以强制将父类指针赋给子类指针的时候只能用static_cast。如class D:public ...
分类:
编程语言 时间:
2014-12-24 07:36:37
阅读次数:
145
const_cast,字面上理解就是去const属性。
static_cast,命名上理解是静态类型转换。如int转换成char。
dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。
reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。
4种类型转换的格式,如:TYPE B = static_cast(TYPE)(a)。
cons...
分类:
编程语言 时间:
2014-11-26 16:35:32
阅读次数:
253
1、static_cast Operator The expression static_cast ( expression ) converts expression to the type of type-id based solely on the types present in the ....
分类:
编程语言 时间:
2014-11-19 22:11:04
阅读次数:
245
static_cast
const_cast
reinterpret_cast
运行时类型识别(RTTI)
dynamic_cast
哪种情况下dynamic_cast和static_cast使用的情况一样?
什么情况下使用dynamic_cast代替虚函数?
typeid
分类:
编程语言 时间:
2014-11-19 17:43:44
阅读次数:
268