C++类型转换符 static_cast, dynamic_cast, const_cast

“cast”一词在英文里有“浇铸”的意思,还是挺形象的。 1.static_cast 可以看做是利用一个原始值构建一个临时对象,并再设定初始值的时候使用类型转换。 例如:

2.dynamic_cast 将多态类型(polymorphic type)成员向下转换为其对应的静态类型成员。这个cast是在运行时实时检验的,因此可以用来检测某个指针指向的对象到底是不是XXX类的。

当参数是个引用,并且类别转换失败的时候,会抛出bad_cast异常哦。 3.const_cast 去除某个对象的const修饰作用,也可以拿来去除volatile修饰作用。