dynamic_cast
通常、基本クラスのポインターがあり、それを派生クラスにダウンキャストする場合に使用されます。例えば、
class A
{
public:
virtual void foo();
};
class B : public A
{
public:
void foo();
};
main()
{
A* a = new B();
B* b = dynamic_cast<B*> (a);
}
C-style
ただし、キャストを使用して同じことを達成することもできます。
B* b = (B*)a;
それで、私の質問は、この演算子を使用することが完全に必要になる、つまり他に選択肢がない状況/ケースは何ですか?