博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++四种类型转化
阅读量:5815 次
发布时间:2019-06-18

本文共 570 字,大约阅读时间需要 1 分钟。

2018-08-02 (星期四)

C++类型转换:
static_cast提供编译时期静态类型检测:
    static_cast <type-id> (expression)
    1)完成基础数据类型
    2)同一个继承体系中类型的转化
    3)任意类型与空指针类型void*之间的转化
    4)在执行转化必要的检测(指针越界,类型检查),其操作数相对是安全的.
        
dynamic_cast提供运行时检测,使用多态的场景,增加了一层对真实调用对象类型的检测:
    1)用于继承体系中进行安全的向下转换downcast
    2)dynamic_cast是四个类型转化中唯一的RTTI操作符,提供运行时类型检查.
    3)dynamic_cast不是强制类型转化,而是带有某种"咨询"性质的,如果不能转化,返回NULL
    4)源类中必须要有虚函数,保证多态,才能使用.
    
reinterpret_cast:
    仅仅是复制ni的比特位到d_r,没有进行必要的分析,reinterpret_cast是为了映射到一个完全不同类型的意思,这个关键词在我们需要把类型映射回元类型时用到它.他是所有转化中最危险的.
const_cast
去掉const常量属性,使其可以修改.

转载于:https://www.cnblogs.com/wuwangchuxin0924/p/9404801.html

你可能感兴趣的文章
项目笔记:测试类的编写
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>
PyTips 0x02 - Python 中的函数式编程
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石 ...
查看>>
使用《Deep Image Prior》来做图像复原
查看>>
如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
查看>>
Linux基础命令---rmdir
查看>>
iOS sqlite3(数据库)
查看>>
粤出"飞龙",打造新制造广东样本
查看>>
编玩边学获数千万元A轮融资,投资方为君联资本
查看>>
蓝图(Blueprint)详解
查看>>
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
海贼王十大悲催人物
查看>>
BigDecimal 舍入模式(Rounding mode)介绍
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 infoSign
查看>>
开源 免费 java CMS - FreeCMS1.9 移动APP生成栏目列表数据
查看>>
git reset 三种用法总结
查看>>