在运行时c ++中使用派生类

时间:2015-04-26 00:44:19

标签: c++ pointers casting polymorphism runtime

这是在运行时检查mybase类是派生类。我需要在运行时使用myBase调用myDerived.member1调用成员变量,如myBase.member1。这里myBase是一个指针。怎么做。

if(dynamic_cast<myDerived*>(myBase))

1 个答案:

答案 0 :(得分:1)

我会这样做:

myDerived* p_derived = nullptr;
p_derived = dynamic_cast<myDerived*>(myBase);
if (p_derived != nullptr)
   //do something with p_derived->member1;

这样你只需要拨打dynamic_cast一次(可能是昂贵的)电话。