新型的类型转换

news2024/11/25 23:47:12

C 方式的强制类型转换

(Type)Expression

Type(Expression)

C 方式强制类型转换存在的问题

过于粗暴

  • 任意类型之间都可以进行转换,编译器很难判断其正确性

难于定位

  • 在源码中无法快速定位所有使用强制类型转换的语句

问题

强制类型转换在实际工程中是很难完全避免的!如何进行更加安全可靠的转换?

新型类型转换

C++ 将强制类型转换分为 4 种不同的类型

static_cast 强制类型转换

用于基本类型间的转换

不能用于基本类型指针间的转换

用于有继承关系类对象之间的转换和类指针之间的转换

const_cast 强制类型转换

用于去除变量的只读属性

强制转换的目标类型必须是指针或引用

reinterpret_cast 强制类型转换

用于指针类型间的强制转换

用于整数和指针类型间的强制转换

dynamic_cast 强制类型转换

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

用于有交叉关系的类指针间的转换

具有类型检查的功能

需要虚函数的支持

小结

C 方式的强制类型转换

  • 过于粗暴
  • 潜在的问题不易被发现
  • 不易在代码中复现

新式类型转换以 C++ 关键字的方式出现

  • 编译器能够帮助检查潜在的问题
  • 非常方便在代码中定位
  • 支持动态类型识别 (dynamic_cast)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

炫龙笔记本毁灭者dc更换CPU记录

文章目录 前言一、确认cpu和主板芯片型号二、搜索可更换的cpu三 、拆机更换cpu四 、蜿蜒曲折的咨询之路总结 前言 本来只想给老笔记本换个512g固态,原先的128g太小了,原装的是一个128g sata接口固态 发现我这台炫龙毁灭者dc居然还能换cpu,除…

回归预测 | MATLAB实现KNN(K近邻)多输入单输出回归预测

回归预测 | MATLAB实现KNN(K近邻)多输入单输出回归预测 目录 回归预测 | MATLAB实现KNN(K近邻)多输入单输出回归预测效果一览基本介绍模型回归程序设计学习总结参考资料效果一览

技术旋风!快速采集建模装备、重建大师6.1版、大面积实景三维轻量化技术...

6月20日 14:30 大势智慧 海量数据轻量化技术与新品夏季发布会 新产品:大势速影,让实景三维建模“快”人一步 实景三维模型应用广度和深度日益扩大,传统测绘技术体系和生产体系正经历数字化变革。 传统激光点云数据量大、空间点离散、缺少…

Video-LLaMA 开源,大语言模型也能读懂视频了!

出品人:Towhee 技术团队 作者:张晨 架构 Video-LLaMA 旨在使冻结的 LLM 能够理解视频中的视觉和听觉内容。如图所示,本文设计了两个分支,即视觉语言分支和音频语言分支,分别将视频帧和音频信号转换为与 LLM 的文本输入…

首次使用云服务器搭建网站(一)

这是本人第一次使用云服务器搭建网站。 一、挑选云服务器 1、我此次使用的是腾讯云赠送的免费云服务器。 2、购买后,进入腾讯云总控制台。 3、点击云服务、云服务器、实例,进入云服务器的实例界面 4、大致就能看到这样一个界面 二、重装系统 腾讯云允许系…

医生出国访学有哪些好处?

医生出国访学有许多好处。在国外访学可以提供医生们与世界上其他国家的医学专家进行交流和合作的机会,从而拓宽他们的学术视野。下面是知识人网小编整理的一些出国访学的好处: 1. 学术交流:出国访学可以让医生们接触到不同国家的医学领域的最…

技术干货|如何解决工业缺陷检测小样本问题?

原创 | 文 BFT机器人 在工业生产制造中,由于生产过程是一个多因素耦合的复杂过程,生产过程中的任何异常都会导致产品缺陷产生,及时识别异常产品的缺陷模式是提高生产质量和生产效率的有效途径,所以缺陷检测具有十分重要的研究意义…

备份手机、电脑微信聊天记录并恢复

文章目录 前言一、手机聊天记录备份至电脑,再恢复1、在电脑新建一个文件夹保存备份文件2、按照下图操作3、最后备份文件大小4、恢复至手机 二、手机聊天记录同步至电脑1、在手机点击【我】--【设置】--【聊天】--【聊天记录迁移与备份】-【迁移】 总结 前言 最近需…

灰度图像点运算之线性变换

目录 note code test note // g(x,y) a * f(x,y) b code void line_convert_fun(uchar& in, uchar& out) {out -1 * in 255; } void img_line_convert(Mat& src, Mat& res) {if (src.empty()) {printf("src empty\n");return;}int src_rows…

【H5】移动端,常见界面布局模板

系列文章 【移动设备】iData 50P 技术规格 本文链接:https://blog.csdn.net/youcheng_ge/article/details/130604517 【H5】avalon前端数据双向绑定 本文链接:https://blog.csdn.net/youcheng_ge/article/details/131067187 【H5】安卓自动更新方案&a…

数据库入门上篇(数据库基础概念知识)

在这篇文章里,笔者将简单介绍数据库的起源和发展,数据库的分类,读完这篇文章,大家就对数据库有一个大概了解,也就是知道我们该学什么样的东西 为什么需要数据库 在如今的信息时代,各行各业每天都会产生大量…

11. python从入门到精通——异常处理及程序调试

目录 异常概述 异常处理语句主要有四种 程序调试:Python有两种常用调试方法 异常概述 异常:异常就是出现错误并且会中断程序的正常执行 异常处理语句主要有四种 示例库:在输入浮点数或除数为0时会异常 def division():功能:分苹果print…

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程

使用JMeter做性能测试会遇到这么一个场景:后面的请求需要根据前面的查询列表结果通过正则表达式提取器取值后赋值,而后面用户的赋值必须是唯一的,此时该如何做? 如果按编程思维来说,这个问题并不难。只需要把前面的结…

他们都开始偷偷学习高性能计算了 | 学习高性能计算需要哪些前置知识?

随着大模型的越演越烈,高性能计算这一领域被越来越多的人所熟知。未来的超算互联网时代,不懂高性能计算更是难以适应未来时代的发展与变化。很多同学都想学习高性能计算,今天作为国内首家专注高性能计算人才培养的专业机构就帮大家梳理一下&a…

接连三预测成真,75%的参与率,华为、阿里、腾讯纷纷介入

Cartner预测:75%参与率 去年,Cartner预测,75%的大型企业将使用至少四种低代码/无代码开发工具,用于IT应用开发! 可以感受的到,这几年低代码以突飞猛进的速度在各领域中得到应用。可以预见的是,…

如何 Java 中的大量的 if else 判断?

目录 问题出现: 如何 Java 中的大量的 if else 判断? 解决方案: 1.策略模式 2.工厂模式 3.映射表 4.反射配置文件------极力推荐使用!!!!! 问题出现: 如何 Java 中的…

STM32F407ZGT6 LQFP144 uart 打印输出

STM32F407ZGT6 AX58100 ETHERCAT芯片软件,需要查看SSC 协议栈运行情况,UART输出状态信息。 STM32F407ZGT6 驱动库使用标准库,虽然老,但是够用。 1.STM32F407ZGT6 芯片情况 STM32F407ZGT6 作为AX58100 的主控 2.板子硬件 STM3…

mysql双主不一致数据修复

参考: pt-table-checksum — Percona Toolkit Documentation pt-table-sync — Percona Toolkit Documentation #对比host1 test库与备库差别 pt-table-checksum hhost1,proot,P3306,uroot -d test --recursion-method processlist --no-check-binlog-format -…

Spring Boot进阶(52):Spring Boot 如何集成Flyway并初始化执行 SQL 脚本?| 超级详细,建议收藏

1. 前言🔥 在我们的认知中,我们会使用 SVN 或 Git 进行代码的版本管理。但是,我们是否好奇过,数据库也是需要进行版本管理的呢? 在每次发版的时候,我们可能都会对数据库的表结构进行新增和变更,…

微机保护的数据采集系统(1)

一、模拟五输入电路概述 模拟量输入电路是微机保护装置中很重要的电路。保护装置的动作速度和测量精确度等性能都与该电路密切相关。模拟量输入电路的主要作用是隔离、规范输入电压及完成模数变换,以便与CPU接口,完成数据采集任务。因此这部分电路又称数…