1.1.1. (C++ 语言命令详解(第二版))
const_cast 将const类型变量,转换为非const .将volatile转换为非volatile
dynamic_cast (RTTI支持)如果实际类型与目的类型不一致(一致是指,目的对象与指针的实际对
象一样,或者目的对象是指针对象的父对象),则返回NULL (0)
dynamic_cast <type*> expr //expr必须含一虚函数,否则编译出错
// 有些编译器须打开标志才能用,如vc /GR
reinterpret_cast 提示编译器不要进行值的转换,只是把地址互相复制
static_cast 相当与不用,编译器进行值的转换,指针转换只能从一种类型到void*,反过来不行,
此4条是扩展ansi特征,在早期c++版本中不支持
属于模版
RTTI原理:在vtable(虚函数表)中放一个指向typeinfo结构体的指针