私はこのようないくつかのクラスを持っています:
interface class IA
{
};
interface class IB
{
};
public ref class C : public IA, public IB
{
};
public ref class D
{
void DoSomething(IA^ aaa)
{
}
void Run()
{
C^ bob = gcnew C();
DoSomething(dynamic_cast<IA^>(bob)); // #1
DoSomething(bob); // #2
}
};
現時点では、そのような関数を呼び出すときは常に動的キャストを使用しようとしています (上記の #1)。
ただし、コードがかなり見苦しくなりますので、実際に必要かどうかを知りたいです。
このように dynamic_cast を使用しますか? もしそうなら、主な理由は何ですか?