dynamic_cast causing a bad_cast error
本问题已经有最佳答案,请猛点这里访问。
我试图理解动态角色扮演是如何工作的。我有一个类接口和一个从它派生的类菜单。在我的程序中,我不创建类InterfaceElement的对象。在执行以下代码时(更精确地说,使用动态u cast执行行),会引发错误的u cast异常
1 2 3 4 5 6 7 8 | void drawInterfaceElement(interfaceElement elem, int colour1, int colour2) { if (elem.getType()=="MENU") { menu &cur = dynamic_cast<menu&>(elem); this->drawMenu(&cur,colour1,colour2); } } |
为什么?
问题是,您正在按值传递
您需要通过引用:
1 2 | void drawInterfaceElement(interfaceElement& elem, int colour1, int colour2) ^ |
以
看什么是对象切片?