1 static_cast
只进行一般的类型转换,一般是内置类型,比如int ,char. 其次可以转换父子类型的指针和引用。父类 和子类 的指针可以互转。不做安全性检查。
int a=2;
char b=static_cast<char>(a);
2 dynamic_cast
不能进行一般类型转换,只能用于基类和派生类之间的指针和引用的转换,子类指针 转 父类可以, 但 父类指针转子类不行。即会做安全性检查。
3 const_cast
可以是基础类型, 给变量去掉const或者加上const.
主要针对const类型的指针,引用和对象。
4 reinterpret_cast
任何类型之间进行转换,不需要是继承关系