在运行时 C++ 中使用派生 class

using derived class in runtime c++

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

if(dynamic_cast<myDerived*>(myBase))

我会这样做:

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

这样您只需调用一次(可能很昂贵)dynamic_cast