C++ dynamic_cast和static_cast简单总结

static_cast主要用于基本类型转换和将void*的指针转换为任意类型的指针,然后是将非const的变量转换为const变量,但是不能将const volitale类型转换为普通变量。
相当于C语言中的强制转换。也可以用于父类子类指针的向上转换,此时为安全的。如果用于向下转换不安全。
dynamic 主要用于父类子类之间的转换,向上转换的时候和static_cast一样,安全。向下转换的时候比static_cast多了类型检查,更安全。还有就是如下图所示:
要看父类指针本身指向的是父类对象还是子类对象,如果是本身就是指向的是子类对象,那使用static_cast和dynamic_cast都可以,但是如果本身指向的就是
父类对象,进行向下转换最好使用dynamic_cast,防止使用static_cast出现访问越界的情况。

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:13
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
球球别拷打俺了:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务