c++中,dynamic_cast是什么作用?

c++中,dynamic_cast是什么作用?

dynamic_cast用于多态性的父子类型对象的指针或引用之间。class A {public: virtual ~A (void) {}};class B : public A {};class C : public B {};int main (void) { B b; A* pa = &b cout << "pa = " << pa << endl; cout << "---- dynamic_cast ----" << endl; // pa实际指向B对象,转换成功 B* pb = dynamic_cast (pa); cout << "pb = " << pb << endl; // pa没有指向C对象,转换失败 C* pc = dynamic_cast (pa); cout << "pc = " << pc << endl;//这里应该pc=NULL}