基本クラス オブジェクトと派生クラス オブジェクトの間で前後にキャストするためのデモンストレーションとして、単純なプログラムを作成しようとしています。これが私のコードです
#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」が発生します。私が間違っていることはわかりません。これが機能しない理由を誰かに説明してもらえますか。