part-02 C++知识总结(类型转换)
一.C++常用的类型转换函数
在C++中,有几种自带的类型转换函数可以用于不同类型之间的转换。以下是其中一些常用的自带类型转换函数:
1.隐式转换(Implicit Conversion)
数字类型之间的隐式转换,例如将int转换为float、double等。
派生类指针向基类指针的隐式转换。
2.显式转换(Explicit Conversion)
C风格的强制类型转换:使用(type)value,例如(int)3.14将浮点数转换为整数。
函数样式的强制类型转换:使用type(value),例如int(3.14)也可以将浮点数转换为整数。
3.const_cast:用于去除const和volatile属性。
const_cast<type>(expression),例如const_cast<int*>(ptr)可以去除指针ptr的const属性。
4.static_cast:用于静态类型转换(大多数常见的转换操作都可以使用static_cast完成)。
static_cast的语法:
static_cast<目标类型>(表达式)
1.基本数据类型之间的转换
int a = 42;
double b = static_cast<double>(a);
2.子类指针向基类指针的转换
class A{
}
class B:public:A{
}B*b=new B();
A*a=static_cast<A*>(b);
注意:这种转换只在派生类转换到基类中有效
3.空指针的类型转换
int* ptr = static_cast<int*>(nullptr);
尽管nullptr本身就是空指针的字面值,但在某些上下文中,编译器可能无法推断出需要的指针类型。因此,通过使用static_cast进行强制转换,可以明确告诉编译器将nullptr转换为int*类型的指针。
这通常在以下情况下使用:
- 当需要将一个空指针赋值给一个特定类型的指针变量时,例如在初始化指针或进行复制/赋值操作时。
- 当调用期望接受特定类型指针参数的函数时,可以将
nullptr转换为该类型的指针并传递给函数。
需要注意的是,在使用static_cast将nullptr转换为指针类型时,请确保目标指针类型是有效的,并且可以安全地使用它来执行后续操作,以避免未定义行为。
4.强制转换为枚举类型
enum class Color {RED,GREEN,BLUE
};
int value = 1;
Color color = static_cast<Color>(value);
这里将 int 类型的 value 转换成了 枚举类型Color。
5.dynamic_cast:用于在继承层次结构中进行安全的向下转型。
dynamic_cast<type>(expression),例如dynamic_cast<Derived*>(basePtr)将基类指针basePtr转换为派生类指针。
6.reinterpret_cast:用于进行不相关类型之间的转换,通常用于将指针或引用重新解释为其他类型。
reinterpret_cast<type>(expression),例如reinterpret_cast<int*>(ptr)将指针ptr转换为整型指针。
需要注意的是,在使用类型转换函数时要小心潜在的风险和副作用。应确保转换操作是安全和合理的,并避免滥用类型转换。
相关文章:
part-02 C++知识总结(类型转换)
一.C常用的类型转换函数 在C中,有几种自带的类型转换函数可以用于不同类型之间的转换。以下是其中一些常用的自带类型转换函数: 1.隐式转换(Implicit Conversion) 数字类型之间的隐式转换,例如将int转换为float、do…...
stable diffusion实践操作-图生图
本文专门开一节写图生图相关的内容,在看之前,可以同步关注: stable diffusion实践操作 正文...
Jtti:Ubuntu18.04如何修改远程ssh端口号
要在Ubuntu 18.04上修改SSH的远程端口号,您需要编辑SSH服务器配置文件并指定新的端口号。以下是具体的步骤: 以root或具有sudo权限的用户登录到您的Ubuntu服务器。 备份SSH配置文件(可选): 在进行任何更改之前&…...
微软表示Visual Studio的IDE即日起开启“退休”倒计时
据了解,日前有消息透露称,适用于 Mac平台的Visual Studio集成开发环境(IDE)于8月31日启动“退休”进程。 而这意味着Visual Studio for Mac 17.6将继续支持12个月,一直到2024年8月31日。 微软表示后续不再为Visual Studio for Mac开发…...
好马配好鞍:Linux Kernel 4.12 正式发布
Linus Torvalds 在内核邮件列表上宣布释出 Linux 4.12,Linux 4.12 的主要特性包括: BFQ 和 Kyber block I/O 调度器,livepatch 改用混合一致性模型,信任的执行环境框架,epoll 加入 busy poll 支持等等,其它…...
element——switch接口成功后赋值打开开关
应用场景 基本用法使用v-model双向绑定值,进行开关控制 例子1:需求: **点击switch,出弹窗,点击弹窗保存按钮调接口成功后再赋值(row.orderButtonValue“1”)打开switch开的状态变颜色。 在vue 中使用 :va…...
WPF Border设置渐变色
背景色渐变 <Border> <Border.Resources> <Style TargetType"Border"> <Setter Property"Background"> …...
SAP_ABAP_OLE_EXCEL批导案例
SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、OLE_EXCEL批导 1.1 下载按钮 1.2 选择EXCEL上传,解析EXCLE数据, Call屏幕。 1.3 实现效果 1.4…...
MySQL以及版本介绍
一、MySQL的介绍 MySQL数据库管理系统由瑞典的DataKonsultAB公司研发,该公司被Sun公司收购,现在Sun公司又被Oracle公司收购,因此MySQL目前属于 Oracle 旗下产品。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用…...
stm32 iap sd卡升级
参考:STM32F4 IAP 跳转 APP问题_stm32程序跳转_古城码农的博客-CSDN博客 app程序改两个位置 1.程序首地址: 2.改中断向量表位移,偏移量和上面一样就可以 然后编译成bin文件就可以了...
D358周赛复盘:哈希表模拟⭐⭐+链表乘法翻倍运算(先反转)⭐⭐⭐
文章目录 2815.数组中的最大数对和思路完整版 2816.翻倍以链表形式表示的数字(先反转,再处理进位)思路完整版 补充:206.反转链表(双指针法)完整版 2817.限制条件下元素之间的最小绝对差(cpp不知…...
java八股文面试[数据库]——索引的基本原理、设计原则
索引的设计原则 索引覆盖是什么: 索引(在MySQL中也叫做“键(key)”) 是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引…...
2023年京东方便食品行业数据分析(京东数据报告)
疫情中方便食品的销售一度火爆,但随着当前消费场景的开放,方便食品销售又恢复常态并开始下滑。根据鲸参谋电商数据分析平台的相关数据显示,今年7月份,京东平台方便食品的销量为800万,环比降低约23%,同比降…...
无涯教程-Android - Style Demo Example函数
下面的示例演示如何将样式用于单个元素。让我们开始按照以下步骤创建一个简单的Android应用程序- 步骤说明 1 您将使用Android Studio IDE创建一个Android应用程序,并在 com.example.saira_000.myapplication 包下将其命名为 myapplication ,如中所述您好世界Example一章。 2 …...
【算法训练-字符串 二】最长回文子串
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【最长回文子串】,使用【字符串】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为…...
结合OB Cloud区别于MySQL的4大特性,规划降本方案
任何一家企业想要获得持续性的发展与盈利,“降本增效”都是难以绕开的命题。但是“一刀切”的降本影响往往不太可控,成本的快速收缩往往会给业务带来低效运营和增长缓慢的风险。所以我们所说的降本,是指在成本降低的同时,效率不降…...
题目有点太简单了,不知道怎么选了
有个公司给了下面一个题目,看了下太简单了,都怕选错了。 后来拿着程序跑了下,就是这个意思嘛。 结论 程序跑出来的结果就是对输入的列表进行倒序排列。 public void testGetPut() throws Exception {List<Integer> numbers List.of(…...
Bug:mac上运行go run main.go 报错,fork/exec /var/fold/T/go-build269/b001/ex
Bug:mac上运行go run main.go 报错,fork/exec /var/fold/T/go-build269/b001/ex 今天通过goland执行go run main.go运行我本地编写好的go代码时,发现报错fork/exec / xxx 解决办法 方法一: 因为当前go的build环境不对,…...
CSRF与XSS结合利用
文章目录 修改cms网站后台管理员密码成功登录总结 修改cms网站后台管理员密码 CSRF和XSS结合的JS代码: <script> xmlhttp new XMLHttpRequest(); xmlhttp.open("post","http://10.4.7.130/cms/admin/user.action.php",false); xmlhttp…...
【爬虫】实验项目一:文本反爬网站的分析和爬取
目录 一、实验目的 二、实验预习提示 编辑 三、实验内容 四、实验要求 五、实验过程 1. 基本要求: 2. 改进要求A 3. 改进要求B: 六、资料 1.实验框架代码: 2.OpenSSL:Win32/Win64 OpenSSL Installer for Windows - Shining Light…...
BetterNCM Installer:3步完成网易云音乐插件框架安装
BetterNCM Installer:3步完成网易云音乐插件框架安装 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer 是一个专为网易云音乐PC版客户端设计的插件管理器…...
用STM32F103C8T6和F9P模组DIY一台RTK无人车:从蓝牙遥控到自主导航的保姆级教程
用STM32F103C8T6和F9P模组打造高精度RTK无人车:从零构建到自主导航全流程解析 在创客圈子里,能够自主导航的智能小车一直是热门项目。但传统基于普通GPS的方案定位精度往往在米级徘徊,难以实现真正的精准控制。而将RTK(实时动态定…...
MAX32630FTHR平台RF95 LoRa精简移植实战
1. RadioHead库深度解析:面向MAX32630FTHR平台的RF95 LoRa通信精简移植 1.1 项目定位与工程价值 RadioHead并非官方标准协议栈,而是由Airspayce公司开发的一套轻量级、跨平台无线通信抽象库。其设计哲学强调“最小可行通信”——不追求协议完备性&#…...
如何从其他理财应用迁移到Ivy Wallet:数据导入完全指南
如何从其他理财应用迁移到Ivy Wallet:数据导入完全指南 【免费下载链接】ivy-wallet Ivy Wallet is an open-source money manager app for android that you can either build or download from Google Play. 项目地址: https://gitcode.com/gh_mirrors/iv/ivy-w…...
图像处理和深度学习笔记[特殊字符](一)
AI生命周期:数据准备 → 模型训练 → 模型转换 → 部署 → 监控↑ 算法工程师关注 ↑ ↓ 你将专注于此 ↓机器学习开发流程数据收集数据预处理特征提取 数据预处理和 特征提取(其实就是数据清洗和转换) 比较耗时耗力清洗和特征工程模型构…...
PP-DocLayoutV3实操手册:display_formula公式块检测准确率提升的3个微调技巧
PP-DocLayoutV3实操手册:display_formula公式块检测准确率提升的3个微调技巧 1. 引言:为什么公式检测这么重要? 在文档数字化处理过程中,数学公式的准确检测一直是个技术难点。传统的OCR系统往往把公式误判为普通文本或图像&…...
告别PuTTY!Windows 10/11自带OpenSSH客户端保姆级配置教程
告别PuTTY!Windows 10/11自带OpenSSH客户端保姆级配置教程 如果你还在使用PuTTY或Xshell等第三方SSH工具,现在是时候重新审视Windows自带的OpenSSH客户端了。微软从Windows 10 1809版本开始内置了完整的OpenSSH套件,经过多年迭代已经足够成熟…...
在模具设计领域,结构受压变形分析就像给钢铁骨架做“压力测试“。COMSOL的稳态研究模块能快速完成这类强度验证,但实际操作中有几个魔鬼细节需要特别注意
用comsol软件进行结构的受压变形分析,计算结构受压时应力分布及应变情况,预测模具的强度是否符合要求。 模型采用装配体,可以使用稳态研究,加快计算速度,在各零件接触的面设置接触对,对顶针施加位移&#x…...
电视盒子变身高性能服务器:Armbian系统终极刷机指南
电视盒子变身高性能服务器:Armbian系统终极刷机指南 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk…...
Qwen3.5-2B部署实战:端侧轻量化多模态模型一键镜像教程
Qwen3.5-2B部署实战:端侧轻量化多模态模型一键镜像教程 1. 模型简介 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这个模型专为低功耗、低门槛部署场景设计,特别适合端侧…...
