dynamic_cast:
1.只能用于有虚函数/继承虚函数的类,与虚表有关
2.可以返回引用和指针,当指针错误时返回空指针,当引用错误时抛出bad_cast异常,因为没有空引用
c++pp介绍了一个作用例子,比如遍历一个含基类元素指针和派生元素指针的基类指针数组,通过dynamic_cast确定指针指向的是基类还是派生类,如果是派生则调用某派生类方法,如果是基类则不调用or执行其他。
c++pp建议用dynamic_cast替代typeid;
dynamic_cast:
1.只能用于有虚函数/继承虚函数的类,与虚表有关
2.可以返回引用和指针,当指针错误时返回空指针,当引用错误时抛出bad_cast异常,因为没有空引用
c++pp介绍了一个作用例子,比如遍历一个含基类元素指针和派生元素指针的基类指针数组,通过dynamic_cast确定指针指向的是基类还是派生类,如果是派生则调用某派生类方法,如果是基类则不调用or执行其他。
c++pp建议用dynamic_cast替代typeid;