我正在尝试编写一个简单的程序,作为在基类对象和派生类对象之间来回转换的演示。这是我的代码
#include "stdafx.h"
#include <iostream>
using namespace std;
class a
{
virtual void hi(){}
};
class b : public a
{
};
int main()
{
a abs = b();
b& bbs = dynamic_cast<b&>(abs);
while(true);
}
代码编译得很好,但是当我运行它时,我得到“Tests.exe 类中 0x75C4C41F 处的未处理异常:Microsoft C++ 异常:内存位置 0x003DF908 处的 std::bad_cast”。我没有看到我做错了什么。谁能向我解释为什么这不起作用。