这是在运行时检查mybase类是否是派生类。我需要在运行时像myBase.member1一样使用myBase从myDerived.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进行一次调用。

关于c++ - 在运行时C++中使用派生类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29872408/

10-11 16:04