这是在运行时检查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/