网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

const_cast,dynamic_cast,reinterpret_cast,static_cast四种转换的区别是什么

这篇文章的内容主要围绕const_cast,dynamic_cast,reinterpret_cast,static_cast四种转换的区别是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!

网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于成都定制网站,高端网页制作,对成都广告制作等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业网站推广优化,H5建站,响应式网站。

     C++是一种强类型语言,对类型的检查非常严格,我们可以使用C语言中的(NewType)Expression来对某个变量或者表达式返回值进行强转,也可以使用C++中提供的新式转换操作符:const_cast,dynamic_cast,reinterpret_cast,static_cast。下面介绍着四种转换使用的不同场景。

一,const_cast

     const_cast顾名思义,用来将对象的常亮性转除,使常亮可以被修改。const_cast(varible)中的type必须是指针,引用,或者指向对象类型成员的指针。比如以下用法是错误的:
const_cast,dynamic_cast,reinterpret_cast,static_cast四种转换的区别是什么
     将int改为int&就可以正常编译通过,且输出a值为4:
const_cast,dynamic_cast,reinterpret_cast,static_cast四种转换的区别是什么
     定义三个类,父类A,子类B和C,B和C中分别有不同的成员函数TestB()和TestC(),然后再用A指针分别指向new出来的A,B,C对象,放入一个数组:
const_cast,dynamic_cast,reinterpret_cast,static_cast四种转换的区别是什么
     此时str和p的值时完全相同的,reinterpret_cast的作用是说将指针str的值以二进制的方式解释为整型。
     这种操作,我在实际项目中和从来没有用到过,仅限于书面基础知识的了解。

四,static_cast

     static_cast用来处理隐式转换,等同于C语言中的(NewType)Expression强转,它可以将int转为float,也可以将char*转为int,将指向基类的指针转为一个指向子类的指针,同时可以将non-const转为const对象,但是它不能将一个const对象转为non-const(这个是const_cast的功能)。

感谢你的阅读,相信你对“const_cast,dynamic_cast,reinterpret_cast,static_cast四种转换的区别是什么”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注创新互联网站!小编会继续为大家带来更好的文章!


分享名称:const_cast,dynamic_cast,reinterpret_cast,static_cast四种转换的区别是什么
网站路径:http://bjjierui.cn/article/gdcepi.html

其他资讯