常量和静态一起投射



我有一个对子类类型的对象的引用,作为父类类型的常量指针传递。我需要将此指针投射到非常量子类。

还有比static_cast<child*>(const_cast<parent*>(pParent))更好的吗?

如果您确定传递的指针指向类型为 child 的对象或其子对象,请使用

static_cast<child const*>(pParent)

请注意,如果不满足上述条件,这将引起未定义的行为(!),因此,如果存在指针不指向类型 child 的对象的可能性,并且parent是多态的,请改用具有相同语法的 dynamic_cast。如果强制转换无效,它将返回一个空指针,通过 RTTI 确定后者。

相关内容

最新更新