dynamic_cast
1.基类中必须有虚函数,并且实现了。否则编译不过。
2.dynamic_cast<>方括号参数可以为指针和引用,如果是指针则 不成功时返回的是空指针。引用不成功时返回的是~~~在运行时抛出异常 badcast 程序终止。
3.必须为引用和指针。
4,支持兄弟类互相转换的语法,但是转换的结果指针为零而已。
static_cast
static 参数是可以为类的,没有类型检查,子类和父类没有类型检查。所以可以转换 但可能会出错(比如说调用某些子类没有的函数的时候,或者未初始化的变量的时候 因此是不安全的)。但是static_cast 还是比强制类型转换要严谨,起码它要求转换的两个类之间是要有父子关系的。不是随便的类都可以转换的。
reinterpret_cast 相当于c语言的强制类型转换 按下不表。