我有一个对子类类型的对象的引用,作为父类类型的常量指针传递。我需要将此指针投射到非常量子类。
还有比static_cast<child*>(const_cast<parent*>(pParent))
更好的吗?
如果您确定传递的指针指向类型为 child
的对象或其子对象,请使用
static_cast<child const*>(pParent)
请注意,如果不满足上述条件,这将引起未定义的行为(!),因此,如果存在指针不指向类型 child
的对象的可能性,并且parent
是多态的,请改用具有相同语法的 dynamic_cast
。如果强制转换无效,它将返回一个空指针,通过 RTTI 确定后者。