C++转型小结

转型一直不陌生,在java里面用的也比较多,直接"()"一下就搞定了,在C++中,部分转型也可以直接用这种方法搞定,在effective c++中,作者将其归纳为旧式转型。

既然有旧式,那就有新式,新式是形如xx_cast的东西。cast比较纠结,虽然平常用的也还算多,但一直没总结,也就老忘了各自区别和具体用法,接下来大概总结一下。

  • const_cast

    用来移除对象的常量性(是移除!不是添加),也是唯一具有此功能的转型操作符(C++style)。

  • dynamic_cast

    用来执行安全向下转型操作,也可以用来判断某个对象是否为另一个对象的派生类。旧式语法无法执行这个操作,缺点是耗费的运行成本比较高。

  • static_cast

    用来强制隐式转换,如将non-const转为const、将int转为double等。

  • reinterpret_cast

    用来处理无关类型之间的转换,它会产生一个新的值,这个值会和原始参数有着完全相同的比特位。几乎任何类型的指针之间都可以互相转换,都不会编译错误,但是使用它很容易导致程序的不安全,只有将转换后的类型值转换回到其原始类型,这才是正确使用reinterpret_cast方式。

  • (Effective C++中说这个方法一般是在高级语法中才出现,且在目前公司项目中也没看到相应应用,暂时性忽略一下,了解就好)
时间: 2024-10-10 00:31:08

C++转型小结的相关文章

JAVA基础—泛型小结

概念: 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引入泛型的好处是安全简单. 泛型的常用字符代表意思: ? 表示不确定的java类型. T  表示java类型. K V 分别代表java键值中的Key Value. E 代表Element. 下面转载于cnblog上一个写的很好的例子 真的很好,我写了半天,当看到他这个后,立即删除~ 普通泛型

互联网体育,八大细分产业的转型之困

即便今天有无数的创业者在倒下,刘旷仍然坚信互联网+是信息时代送给传统行业最大的礼物.尽管资本热潮在退却,但是这些却无法阻挡互联网升级传统行业前进的步伐,每一个传统行业最终都将会诞生伟大的互联网+企业,这是人类科技发展必然.成者王侯败者寇,只会怨天尤人.怪行业不行.不反省自查的创业者永远都只会是个失败者. 今天的中国,作为一个世界体育强国,在迎接互联网的到来之际,体育文化产业如何借助互联网实现全面升级也成为了众多国人与创业者关心的话题.在前几月刚刚出台的<北京市关于加快发展体育产业促进体育消费的实

企业敏捷转型试运行

在企业敏捷转型中,人是最重要的,团队是最重要的.按许秀影博士的企业导入敏捷步骤,大致分三大步:培训.教练与引导.内化.需要对敏捷方法实践比较熟悉的Master去引导,同时又需要根据企业.项目.团队环境进行裁剪运用,允许团队犯错,不可太苛求,不可一步到位,逐步改进和内化,时刻保持包容心.企业敏捷转型通常需要相对较长的周期,在转型开展中给团队更多话语权,更多的鼓励团队发现问题.找到痛点,团队讨论思考解决方案,督导跟进,不断改善提高团队的学习能力.项目周期越短,迭代节奏越短:项目周期越长,迭代节奏越长

C++面试小结

虚函数与纯虚函数: 引入虚函数是为了动态绑定,引入纯虚函数是为了派生接口 基类需要虚的析构函数的原因: 当derived class由一个base class指针被删除而该base class指针为non-virtual的时候,可能会发生内存泄漏,使用虚的析构函数可以解决该问题 ++i与i++的区别: //i++ 实现代码为: int operator++(int) { int temp = *this; ++*this; return temp; }// 返回一个 int 型的对象本身 //

全面推进云化,使能数字化转型 ——徐直军在2016华为全球分析师大会上的发言

文/徐直军 女士们.先生们,各位老朋友.新朋友,大家上午好!非常高兴在同样的地点跟各位老朋友再相会,也非常欢迎各位新朋友来参加华为2016年的分析师大会. 这次大会的组委会给我定的主题是<全面推进云化,使能数字化转型>,我一直在思考怎么把全面推进云化和数字化转型能够有机的衔接起来. PART 1:对数字化转型和全面云化的理解 首先,我谈一下数字化转型的理解. 现在,大量的运营商都把未来的目标定位为要成为数字化的运营商.我跟他们交流,说运营商早就数字化了,数字化对运营商来讲不是一个新的课题.现在

(转) Java中的负数及基本类型的转型详解

(转) https://my.oschina.net/joymufeng/blog/139952 面这行代码的输出是什么? 下面两行代码的输出相同吗? 请尝试在Eclipse中运行上面的两个代码片段,如果你对输出结果感到很惊讶,请继续往下读... 正如你所看到的: 第1个代码片段的运行结果是:-1 第2个代码片段的运行结果是:65535和255 上面的两个代码片段来源于<Java解惑>的第6个小问题"多重转型",原题目内容如下: public class Multicast

Java之路 - 抽象类、接口、多态、向上向下转型

1.抽象类 如果父类当中的方法不确定如何进行{}方法实现,那么这就是一个抽象方法 抽象方法所在的类必须是抽象类 使用方法: (1)不能直接创建new抽象类对象 (2)必须用一个子类来继承抽象父类 (3)子类必须覆盖重写抽象父类当中所有的抽象方法 覆盖重写(实现):去掉抽象方法的abstract关键字,然后补上方法体大括号: (4)创建子类对象进行使用 public abstract class animal { //抽象类 public abstract void eat(); //这是一个抽象

微软要做用云量挖掘机,以技术驱动数字化转型快公司

今年7月,首次更名为"Inspire"的微软WPC全球合作伙伴大会上,微软宣布将所有与合作伙伴相关的角色都重新整合为一个新的部门:统一商业合作伙伴部门(One Commercial Partner),并进行了一整套的组织和流程改组,以适应云计算时代的用户需求与"用云量"规律. 2017年9月12日,微软大中华区副总裁.全球渠道事业部总经理.商业客户事业部总经理包嘉峰与媒体分享了这两个月微软商业合作伙伴部转型以来,微软自身所发生的变化以及为客户所带来的价值.根据包嘉峰

使用Apache POI导出Excel小结--导出XLS格式文档

使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI导出Excel小结--导出XLSX格式文档 使用Apache POI导出Excel--大数量导出 导出XLS格式文档 做企业应用项目难免会有数据导出到Excel的需求,最近在使用其,并对导出Excel封装成工具类开放出来供大家参考.关于Apache POI Excel基本的概念与操作我在这里就不啰嗦