dire que je que j'ai ces classes:Existe-t-il un moyen d'utiliser dynamic_cast lors de la diffusion vers un enfant?
struct Parent {};
struct Child : public Parent {
void func() {}
};
dire maintenant que je voulais créer une fonction comme ceci:
void foo(Parent* arg) {
auto child = dynamic_cast<Child*>(arg);
if(child != nullptr) child->func();
}
Mais, évidemment, cela me donnera évidemment l'erreur:
dynamic_cast
:Parent
is not a polymorphic type
Donc, je ne peux pas faire l'étape dynamic_cast
, est-il un moyen que je peux valider que arg
est en fait un Child*
à l'exécution?