码迷,mamicode.com
首页 > 编程语言 > 详细

C++提供的四种新式转换--const_cast dynamic_case reinterpret_case static_case

时间:2014-07-06 09:01:57      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:c++

1、const_cast通常被用来将对象的常量刑转换,它也是唯一有此能力的C++-style转型操作符。

2、dynamic_cast主要用来执行“安全向下转型”,也就是用来决定某对象是否归属继承体系中的某个实现。他是唯一无法由旧式语法执行的动作,也是唯一可能耗费重大运行成本的转型动作。

3、reinterpret_case意图执行低级转型,实际动作(及结果)可能取决于编译器,这也就表示它不可移植。例如将一个pointer to int转型为一个int,这一类转换在低级代码意外很少见到。

4、static_cast用来强迫隐式转换,例如将non-const对象转换为const对应,或将int转换为double等等,它也可以用来执行上述多种转换的反向转换,例如将void*指针转为typed指针,将pointer-to-base转为pointer-to-derived。但无法将const转为non-const(这个只用const_cast才能办到)


如果打算将常量性去掉,除非使用新式转型中的const_cast 否则无法通过编译。

C++提供的四种新式转换--const_cast dynamic_case reinterpret_case static_case,布布扣,bubuko.com

C++提供的四种新式转换--const_cast dynamic_case reinterpret_case static_case

标签:c++

原文地址:http://blog.csdn.net/yusiguyuan/article/details/36893647

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!