const_cast是C++此中一种类型转换运算符,它只有一种用途,就是改变值为const 或 volatile, 因为编程时会无意间改变变量的类型,是以利用const_cast运算符会加倍平安!下面将申明如何利用const_cast进行类型转换以及它存在的局限!
东西/原料
- C++
方式/步调
- 1
起首界说基类CLow,然后实现对应代码
- 2
然后界说子类CHigh, 担当CLow, 然后实现对应代码
- 3
完当作上面的根本代码之后,本家儿函数输入以下测试代码,界说一个const的指针,然后经由过程const_cast进行转换,删除const标签
- 4
点窜本家儿函数的测试代码,经由过程const_cast将const High * 转换为const Low *
- 5
点击运行调试,编译报错,无法转换,申明const_cast不克不及进行分歧类型的转换,只能改变const或者volatile特征
- 6
我们也可以经由过程采用通用的方式来进行强制类型转换,可是如许有可能会改变类型,因为可以或许将const CHigh *改为CLow *而没有编译报错,是以平安性不敷
- 7
const_cast可以去失落const标签,可是纷歧心猿意马能过改变变量的值,下面举个例子进行申明,起首界说如下函数,转换const int *的类型为 int * , 然后对值进行点窜
- 8
本家儿函数添加如下的测试代码,注重界说了两个变量一个示int, 另一个是const int
- 9
最后运行的成果如下所示,从中可以看出,iNum1的值改变,而iNum2的值没有改变,所以仅当指标的目的的值不是const时,才能对值进行改变
注重事项
- 喜好经验接待点赞!
来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!
本文链接:https://www.ibaiwen.com/web/214332.html
- 上一篇: TP-LINK路由器怎么限制网速
- 下一篇: 怎么登陆Wed版QQ
- 热门文章
-
WB蒙特利尔(WB Montreal)——欧美十大最差视频游戏开发商
迅猛龙(Velociraptor)——欧美史前十大死亡动物
什么是果酱猫(What Marmalade Cats)?
神奇蜘蛛侠2(The Amazing Spider-Man 2)——欧美最佳蜘蛛侠电影
希瑟(Heather)——欧美十大最佳柯南灰歌
二人梭哈
奥兹奥斯本(Ozzy Osbourne)——欧美十大高估歌手
faceu激萌怎么把瘦脸开到最大
什么是小脑前下动脉(Anterior Inferior Cerebellar Artery)?
我应该知道康涅狄格州的什么(What Should I Know About Connecticut)?
- 热评文章
- 最新评论
-
- 最近访客
-
- 站点信息
-
- 文章总数:200248
- 页面总数:9
- 分类总数:1
- 标签总数:0
- 评论总数:0
- 浏览总数:497