首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

指针类型转换怎么正规书写

2014-01-01 
指针类型转换如何正规书写?dynamic_castB *(p1)与static_castB *(p1)转换有什么区别?语句(B *)(p1)与

指针类型转换如何正规书写?

dynamic_cast<B *>(p1)与static_cast<B *>(p1)转换有什么区别?语句(B *)(p1)与哪个等效呢?

[解决办法]
(B *)(p1)  与 static_cast<B *>(p1) 等效

用于一般的内型转换,是否能转换 编译时候就能确定

dynamic_cast<B *>(p1) 用于继承类之间的转换,
比如类型为基类的指针(实际可以是指向基类 或者继承类)  强转为 继承类指针。

因为编译的时候不知道该基类指针是否指向继承类, 能否转换由运行时候决定。
当 指向的是继承类的时候, 它可以转换 继承类指针
如果指向 基类, 就不能转换。

[解决办法]
dynamic_cast用于将基类指针类型转换为派生类指针类型,前提是该对象的确包含派生类对象,这个转换是相对慢点的,因为会去校验转换是否合法。

static_cast和C风格的转换基本一致。

热点排行