首页 > 代码库 > C++提供的四种新式转换--const_cast dynamic_case reinterpret_case static_case
C++提供的四种新式转换--const_cast dynamic_case reinterpret_case static_case
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 否则无法通过编译。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。