狄泰C++课程学习笔记:第十一课:C++中新型的强制类型转换

1、区别于C形式的简单粗暴的统一风格的强制类型转换,C++做了全新的变革,C++中将所有的强制类型转换分为了4种,并依次提供了static_cast/const_cast/reinterpret_cast/dynamic_cast 4个关键字来对应于每一种强制类型转换,这样做可以在实际工作的工程应用中,快速且有依据的定位出我们源代码中所有出现了某种强制类型的地方,这样可以帮助我们更为快速的去定位问题。

2、static_cast:

    * 用于普通基本数据类型之间的转换,强调:不能用于普通基本数据类型指针间的转换

    * 也可用于具有继承关系的类对象或者类指针之间的强制类型转换

3、const_cast:

    * 用于去除某变量的只读属性

    * 强调:转换的目标类型只能为某种类型的指针或引用

3、reinterpret_cast:

    * 相对于static_cast,reinterpret_cast用于普通基本数据类型指针间的转换

    * 也可用于普通基本数据类型指针和整形之间的转换,如在嵌入式中,根据需要,将某一特定的整形值当做一个地址来使用

4、dynamic_cast:

    * 用于具有继承关系的类指针之间的转换

    * 用于具有交叉关系的类指针之间的转换(这个不是特别理解,后续课程会逐步深入)

    * 具有类型检查的功能

    * 强调:dynamic_cast的使用前提:类的定义中必须要有虚函数

demo小例如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值