C++中的显式类型转换操作符

2014-11-24 10:41:24 ? 作者: ? 浏览: 0

C++有4种显式类型转换操作符,最好不要使用C语言编程方式遗留的隐式类型转换。第一,显式类型转换在代码中更明显,可以提醒程序员你的代码设计可能存在一些丑陋的地方;第二,显式类型转换可以检测转换中的错误,比如当cast失败时,你会得到空指针,但隐式转换就不会;第三,有些情况,隐式类型转换无法做到,比如const_cast的功能。


static_cast


编译器隐式执行的任何类型转换,都可以使用static_cast显式完成。一般用于不同大小的类型之间互相转换。


顾名思义,用于转换掉表达式的const性质。


比如我们从外部接受了一个const类型的参数,再传递给下层函数时,又需要修改它const_cast就派上用场了。



将基类类型的指针或引用安全地转换为派生类型的指针或引用。如果转换到指针类型的dynamic_cast失败,则其结果为0值;如果转换到引用类型的dynamic_cast失败,则抛出一个bad_cast类型的异常。这也是为什么不使用C方式类型转换的原因,C方式的转换失败后,我们不知道如何检测错误。



为操作数的位模式提供较低层次的重新解释。啥意思呢。假设有一堆数据,保存的是一个int类型的序列,本来应该使用int*对其进行遍历,但有时候我们可能需要逐个字节的进行访问,以进行一些特殊操作。那么就可以使用此转换操作符。但我们应当有清醒的意识,其实指针指向的类型一直都是int。


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: