c++中引入了四个强制类型转换,分别是static_cast、dynamic_cast、const_cast和reinterpret_cast。其使用对比如下:
1.static_cast<type>(expression)
msdn解释:http://msdn.microsoft.com/en-us/library/c36yw7x9(v=vs.80).aspx
一般的基本类型转换都可以使用此表达式,该转换不会进行运行时类型检查。
2.dynamic_cast<type>(expression)
msdn解释:http://msdn.microsoft.com/zh-cn/library/cby9kycs(v=VS.71)
该转换通常用于将基类类型的指针或者引用转换为其派生类类型的指针或引用,在类型转换的时候会进行运行时类型检查。type必须为一个指向已定义的类类型指针或引用,或者是一个为0的指针。
type分别为指针或者引用的时候会有些不同,基本使用可参照c++ primer 647页的内容。
3.const_cast<type>(expression)
msdn解释:http://msdn.microsoft.com/zh-cn/library/vstudio/bz6at95h(v=vs.100).aspx
该转换可以移除expression的const、volatile和_unaligned属性。