我引用了作为父类类型的const指针传递的子类类型的对象。 我需要将此指针强制转换为非const子类。
有什么比static_cast<child*>(const_cast<parent*>(pParent))
更好吗?
答案 0 :(得分:0)
如果您确定传递的指针指向类型为child
的对象或其子对象,请使用
static_cast<child const*>(pParent)
请注意,如果未满足上述条件,则会导致未定义的行为(!),因此如果指针不指向child
类型的对象,{{1} }是多态的,使用parent
代替相同的语法。如果强制转换无效,它将返回空指针,通过RTTI确定后者。