我有一些这样的课程:
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?如果有,主要原因是什么?