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
cast 来实现:
B* b = (B*)a;
所以,我的问题是在哪些情况/情况下完全有必要使用此运算符,即没有其他选择?