C++中有四种类型转换方式.如下:
static_cast  :简单的转换
const_cast  :去掉const
dynamic_cast    :类的转换
reinterpret_cast  :不同类型强制转换(很容易出错的)

1.static_cast : 使用简单,易理解…类型转换

 

2.const_cast  :去掉指针的const…

 

3.dynamic_cast    :较复杂。它与static_cast相对,是动态转换。
这种转换是在运行时进行转换分析的,并非在编译时进行,明显区别于上面三个类型转换操作。
该函数只能在继承类对象的指针之间或引用之间进行类型转换。进行转换时,会根据当前运行时类型信息,判断类型对象之间的转换是否合法。dynamic_cast的指针转换失败,可通过是否为null检测,引用转换失败则抛出一个bad_cast异常。

从基类转化为子类的指针的时候,要求基类有虚函数(virtual)

 

4.reinterpret_cast   :该函数将一个类型的指针转换为另一个类型的指针.
这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.
reinterpret_cast 可以将指针值转换为一个整型数,但不能用于非指针类型的转换.

 

大致是以上四种,使用频率越来越少吧…

【C++】C++中的四种类似转换方式
Tagged on:
0 0 vote
Article Rating
订阅
提醒
0 评论
Inline Feedbacks
View all comments