【问题标题】:dynamic cast from father to child [duplicate]从父亲到孩子的动态转换[重复]
【发布时间】:2019-02-23 19:45:03
【问题描述】:

当我像这样进行动态施法时,我创建了三个类(生物、龙、巫师)龙和巫师从生物类继承

void dragon::atk(creature *creat){
if(dynamic_cast<dragon*>(creat))
    //

不能dynamic_cast 'creat'(类型为'类生物*')到类型'类龙*'(源类型不是多态的)|

我查了很多但不知道为什么会出现这个错误

【问题讨论】:

  • 表示creature必须至少有一个虚函数。在您的情况下,它至少应该是析构函数。
  • 请提供minimal reproducible example。你说dragon继承自creature?代码或它没有发生:P
  • 我做虚函数后就可以了

标签: c++ oop


【解决方案1】:

dynamic_cast 通常是requires polymorphic types。这意味着所涉及的类型必须至少有一个虚成员函数(可以是析构函数)。

【讨论】:

  • 请标记/投票以关闭明显的重复项。
  • 谢谢兄弟,它现在可以工作了
猜你喜欢
  • 2012-05-04
  • 1970-01-01
  • 2013-09-15
  • 2017-09-04
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 2013-03-09
相关资源
最近更新 更多