说我,我有这些类:有没有办法使用dynamic_cast投射到孩子?
struct Parent {};
struct Child : public Parent {
void func() {}
};
现在说,我想创造这样的功能:
void foo(Parent* arg) {
auto child = dynamic_cast<Child*>(arg);
if(child != nullptr) child->func();
}
但很明显,这将明显地给我的错误:
dynamic_cast
:Parent
is not a polymorphic type
所以我不能做的dynamic_cast
步骤,有没有一种方法,我可以验证arg
其实是一个Child*
在运行时?