アドレスを含む整数型を実際のポインタ型に変換する必要があります。次のようにreinterpret_castを使用できます。
MyClass *mc1 = reinterpret_cast<MyClass*>(the_integer);
ただし、これは、問題のアドレスが実際にMyClassオブジェクトを保持しているかどうかを確認するための実行時チェックを実行しません。最初にvoid*に変換し(reinterpret_castを使用)、次に結果にdynamic_castを使用することに利点があるかどうかを知りたいです。このような:
void *p = reinterpret_cast<void*>(the_integer);
MyClass *mc1 = dynamic_cast<MyClass*>(p);
assert(mc1 != NULL);
2番目の方法を使用することに利点はありますか?