C++ 的四种类型转换

2023-11-17

背景

C语言中强制类型转换可以随意转换我们想要的类型,格式如下(类型)变量名,那么为什么C++还要引入新的4种类型转换呢?
1.新的类型转换控制符可以很好的控制类型转换的过程,允许控制各种类型不同的转换.
2.C++的类型转换控制服能告诉程序员或读者我们这个转换的目的是什么.

static_cast< T * > (content): 静态转换(编译器处理)

它主要用于C++中内置的基本数据类型之间的转换, 但是没有运行时的检测来保证转换的安全性.

  • 用于基类和子类之间的指针或引用的转换,这种转换把子类的指针或引用转换为基类表示是安全的.进行下行转换,把基类的指针或引用转换子类表示时,由于没有进行动态类型检测,所以是不安全的;
  • 把void 类型的指针转换为目标类型的指针.
  • 用于内置的基本的数据类型之间的转换.
  • 把任何类型的表达式转换为void类型的
    注意:static_cast不会转换掉content的const,volatile.__unaligned属性.

const_cast< T*>(constent):去常转换,编译期执行

  • 它主要作用同一个类型之间的去常和天剑常属性之间的转换,不能用做不同的类型之间的转换.
  • 它可以把一个不是常属性的转换为常属性,同时它也可以对一个本是常属性的类型进行去常.

dynamic_cast< T*>(content):动态类型转换,也是向下安全转型,运行期执行

通常用于基类和派生类之间的转换,转换时会进行类型安全检查

  • 不能用于
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 的四种类型转换 的相关文章

  • vscode相关问题处理

    1 跳转缓慢 跳转函数 一直转圈圈 比较慢 关闭vscode 删除索引文件 cd config Code User workspaceStorage rm rf 2 重新打开vscode即可 2 波浪线报错 在确认c cpp propert
  • RocketMQ-高级原理

    本节讲解下当MQ消息消费失败 或者发送不成功时如何处理消息 消息发送不成功一般存在于几种情况 网络原因 服务宕机 或者broker配置 消息发送失败 如果是由于broker配置原因 可以通过报错提示排查原因 无法查到路由信息 一般考虑到ro
  • MATLAB算法实战应用案例精讲-【时序模型】循环神经网络-GRU(附MATLAB和Python代码)

    目录 前言 几个高频面试题 1 GRU与LSTM的区别与联系 2 LSTM和RNN的区别 GRU的引入 算法原理
  • 浅析TVSPK稳压二极管,谁能更胜一筹?

    1 符号封装 稳压二极管和TVS管的电路符号和稳压二极管基本相同 封装也差不多 有时候在外观甚至很难分别出来到底哪个是哪个 2 电路接法 稳压二极管和TVS管在电路都是反向接入 也就是利用它的反向特性 利用PN结雪崩效应 在反向击穿前均有一
  • Python3爬虫学习——requests库笔记

    Python3爬虫学习 requests库笔记 前言 本笔记用于记录整理requests库的一些基本知识 内容会根据博主自己的认知作增添或压缩 其实自己看了下之前写的urllib库笔记 觉得那么写万字长文并不妥当 没有起到快速查阅的笔记作用

随机推荐

  • Nginx下载大文件失败

    原因分析 nginx代理nginx时 前端用户请求下载文件 nginx代理会先从后端nginx拿到文件并缓存到本地 然后响应给客户端 其中与proxy buffer相关的配置项如下 proxy buffer size 512k proxy
  • Socket_Tcp加密文件传输系统

    代码下载链接 Socket Tcp 原文链接 https blog csdn net weixin 45746588 article details 107683901 这是一个课程的作业 我是初学者 所以写完这个代码还是花了我好几周的时间
  • JDK8新增锁StampedLock详解

    1 StampedLock是做什么的 它是ReentrantReadWriteLock 的增强版 是为了解决ReentrantReadWriteLock的一些不足 2 ReentrantReadWriteLock有什么不足之处呢 我们都知道
  • extjs打开页面光标自动定位

    网上查了好久 也知道使用focus 当时不知道在哪里使用 调试到最后发现要在view show 之后 具体代码如下 function resp var view createFormWindow 新增 smpsupplyContractMa
  • 推荐几本Linux相关的好书

    应用层开发的 可以看看 Linux Application Development Advanced Linux Programming 第二本废人同学曾经翻译过 译稿可从这里获取 另外Linux和Unix渊源极深 因此 应用层开发也可以看
  • Visual Studio 2022 安装

    1 官网下载 打开浏览器 输入微软官网https visualstudio microsoft com zh hans downloads 下载社区版安装 2 安装社区版 3 安装时组件选择通用Windows10开发平台C 选项
  • python实现抢劵_手把手教你用python抢京东大额神券

    一 背景介绍 我们经常能看到京东上有满200减100之类的大额神券 但是当自己激动的等在电脑旁 手拿鼠标 眼盯屏幕 等着倒计时慢慢临近 期待抢到自己喜爱的优惠券 然而最终得到的往往是 券已抢完 为了弥补手速的缺憾 今天我教大家如何用pyth
  • CentOS 8: yum 设置为阿里源

    1 将源文件备份 cd etc yum repos d mkdir backup mv repo backup 2 下载阿里源文件 curl o etc yum repos d CentOS Base repo http mirrors a
  • [Qt学习笔记]Qt动态切换控件样式属性方法

    目录 1 介绍 2 实现过程 3 效果展示 1 介绍 在编程过程中我们一般使用setStyleSheet 函数来设置控件的样式属性 包括颜色 边框 透明度等属性 如果不同的控件和样式直接在代码中设置 会造成无法统一管理的缺点 反复书写样式属
  • C语言怎么用char输出多个字母,c语言输入一个字符串怎么间隔输出

    Q1 c语言中 如何利用指针对字符串每隔几个输出一个 隔三个 输出一个 也就是每四个输出一个 char s abcdefgh char p s int i 0 for p s p p i if i 4 0 putchar p Q2 c语言
  • 等额本息贷款每月还款金额推导过程

    假设贷款总额是A 而每月利息是b 总共360期 目标是计算每个月应该给银多少钱 推导过程如下 设每个月还银行的本金为 m n 1 n
  • Pattern.compile的flag参数

    Pattern compile函数 Pattern Pattern compile String regex int flag regex为正则表达式 flag的取值范围如下 Pattern CANON EQ 当且仅当两个字符的 正规分解
  • (总结许多容易犯的错误)Ubuntu14.04+cuda8.0+gtx1080+cudnn5.1配置教程

    需要注意 不能按照网上大多数cuda8 0 gtx1080的方法来做 因为他们这些方法都忽略了一个重要的问题 NVIDIA官方的版本更新会影响兼容性导致Ubuntu系统无法进入登录界面 例如 cuda 8 0 27 linux版本对应NVI
  • 数组解构赋值与扩展运算符...

    解构 let a b c 1 3 5 扩展运算符
  • 「从0到1搭建自己的UI组件库」-- button组件

    写在前面 我是 沸羊羊 昵称来自于姓名的缩写 fyy 之前呕心沥血经营的博客因手残意外注销 现经营此账号 本人是个小菜 正向着全栈工程师的方向努力着 文章可能并不高产 也很基础 但每写一篇都在用心总结 请大佬勿喷 如果您对编程有兴趣 请关注
  • vue3封装简易的vue-echarts

    项目场景 数据可视化开发 采用的技术栈是vue3 echarts router 问题描述 在vue2中 才开始开发数据可视化大屏 都是用echarts 之后改用为vue echarts组件 但是到了vue3之后 组件会有一些小问题 所以准备
  • 如何强制解锁或删除被占用的文件或文件夹 - ForceDelete绿色强制文件删除工具

    你可能时常遇到无法删除Windows上的文件和文件夹的情况 并且会收到 无法删除文件 访问被拒绝 或 该文件已被其他程序打开 诸如此类的错误消息 这意味着这些文件和文件夹在Windows中被锁定 无法以常规方式删除 你可以试试ForceDe
  • 计算机如何根据人脸估计年龄,人脸图像算法研究(1)

    今天给大家带来一篇 人脸识别中的年龄估计技术 年龄特征作为人类的一种重要生物特征 计算机要如何基于人脸图像估计年龄呢 概述 简单地说 基于人脸图像的年龄估计是指机器根据面部图像推测出人的大概年龄或所属的年龄范围 年龄段 基于人脸图像的年龄估
  • 4.4.5 密码验证(2)

    4 当且仅当含数字和字母的密码验证 如果密码当且仅当包含数字和字母 那么该密码的强度是中等强度 当然 它的安全性一般 以下正则表达式能够验证当且仅当包含数字和字母的密码 da zA Z d a zA Z da zA Z 74 正则表达式 7
  • C++ 的四种类型转换

    背景 C语言中强制类型转换可以随意转换我们想要的类型 格式如下 类型 变量名 那么为什么C 还要引入新的4种类型转换呢 1 新的类型转换控制符可以很好的控制类型转换的过程 允许控制各种类型不同的转换 2 C 的类型转换控制服能告诉程序员或读