指针类型转换怎么正规书写
指针类型转换如何正规书写?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风格的转换基本一致。