【发布时间】:2015-04-26 00:44:18
【问题描述】:
如果 mybase 类是派生类,这是在运行时检查。我需要在运行时使用 myBase(如 myBase.member1)从 myDerived.member1 调用成员变量。这里 myBase 是一个指针。如何做到这一点。
if(dynamic_cast<myDerived*>(myBase))
【问题讨论】:
-
dynamic_cast<>不返回bool。它要么抛出异常,要么返回myDerived *指针。 -
dynamic_cast<myDerived*>(myBase)->member1? -
@Carlton 是的,它有效,谢谢!
-
@Carlton
dynamic_cast与引用 (dynamic_cast<Derived&>(base)) 一起使用时会在失败时抛出bad_cast异常,这可能是 @user2225104 所引用的。 -
@JamesAdkison 哎呀,我什至没有考虑非指针类型。评论已删除。
标签: c++ pointers casting polymorphism runtime