c – 什么时候/应该使用dynamic_cast而不是static_cast?
发布时间:2020-12-16 07:32:35 所属栏目:百科 来源:网络整理
导读:我想知道什么时候必须或者应该在static_cast上使用dynamic_cast,并举例说明.我读过 this SO question,但它并没有提供任何具体的例子.我假设大多数示例都涉及多态类类型.目前我知道使用dynamic_cast而不是static_cast的唯一原因是,如果我不能100%确定我正在
我想知道什么时候必须或者应该在static_cast上使用dynamic_cast,并举例说明.我读过
this SO question,但它并没有提供任何具体的例子.我假设大多数示例都涉及多态类类型.目前我知道使用dynamic_cast而不是static_cast的唯一原因是,如果我不能100%确定我正在使用的具体类型.
其他一些想法: >横向投射(多重继承) 是“如果型号未知”的原因唯一的原因是什么?如果没有,有人可以举例说明为什么dynamic_cast必须或应该在static_cast上使用? 解决方法
通常,在a中转换时应使用dynamic_cast
等级,无论如何.一个可能的例外是从a转换 派生类到基类(当然是指针或引用).除此以外, 关于你在层次结构中使用static_cast的唯一时间是 分析师说你必须. 转换为void *时更经常使用static_cast,或者确保空指针常量的正确类型,或者用于转换不涉及指针或引用(例如static_cast< double>(someInt)). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |