const和static一起铸造

时间:2014-11-19 17:06:57

标签: c++ casting

我引用了作为父类类型的const指针传递的子类类型的对象。 我需要将此指针强制转换为非const子类。

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

1 个答案:

答案 0 :(得分:0)

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

static_cast<child const*>(pParent)

请注意,如果未满足上述条件,则会导致未定义的行为(!),因此如果指针不指向child类型的对象,{{1} }是多态的,使用parent代替相同的语法。如果强制转换无效,它将返回空指针,通过RTTI确定后者。