什么时候应该使用static_cast,dynamic_cast,const_cast和reinterpret_cast?