1. 智能指针类型转换用static_pointer_cast,dynamic_pointer_cast等; 2. dynamic_cast/dynamic_pointer_cast的转换,其类族基类中必须至少有一个虚函数,哪怕是虚析构函数。