c++面试经典问题-四种强制类型转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hahachenchen789/article/details/83275775

Static_cast和Dynamic_cast放在一起比较容易记,一动一静

 

Static_cast是静态转换,也就是编译时转换,可以完成基础类型的转换,然后任意类型指针与void指针的转换,还可以完成同一个继承体系中类型的转换。

 

Dynamic_cast是运行时转换,用于将基类的指针或引用安全的转换成派生类的指针或引用。也就是所谓的downcast,向下转换,因为向上转换upcast是没有问题的(子类转换为父类),因为父类的行为(函数)都包含在子类中。

同时,要保证基类中存在虚函数,保证多态。

 

Const_cast 去除掉常量属性

 

Reinterpret_cast 对二进制形式重新解释,但不改变其值。

猜你喜欢

转载自blog.csdn.net/hahachenchen789/article/details/83275775
今日推荐