当前位置: 首页 > news >正文

C++核心编程和桌面应用开发 第十一天(静态转换 动态转换 常量转换 重新解释转换)

目录

1.静态类型转换

1.1语法

1.2用法

2.动态类型转换

2.1语法

2.2用法

3.常量类型转换

3.1语法

3.2用法

4.重新解释转换

4.1语法


1.静态类型转换

1.1语法

static_cast<目标转换类型>(待转换变量)

1.2用法

  • 可用于基本数据类型之间的转换。比如int和char之间的转换
  • 可用于继承中基类和派生类之间指针或引用的转换(父转子,不安全;子转父,安全)

2.动态类型转换

2.1语法

dynamic_cast<目标转换类型>(待转换变量)

2.2用法

  • 不允许基本数据类型之间的转换
  • 可用于继承中基类和派生类之间指针或引用的转换(向上转换和静态转换一样,向下转换时,动态转换会检查类型,普通的向下转换不安全,会转换失败;向上转换,成功;若是多态,那么转换总是安全的,则转换成功)

3.常量类型转换

3.1语法

const_cast<目标转换类型>(待转换变量)

3.2用法

  • 只针对指针或引用进行转换
  • 常量指针被转化成非常量指针,仍然指向原来的对象
  • 常量引用被转化成非常量引用,仍然指向原来的对象
//举例
const int* p=NULL;
int* p=const_cast<int*>(p);

4.重新解释转换

4.1语法

reinterpret_cast<目标转换类型>(待转换变量)

 注意:重新解释转换是一个非常底层的转换方式,可能会导致未定义的行为,不推荐使用

http://www.lryc.cn/news/461618.html

相关文章:

  • Ubuntu-Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题
  • mysql用户管理(user表列信息介绍,本质,管理操作),数据库的权限管理(权限列表,权限操作)
  • AI工具 | Notion全新AI集成:搜索、内容生成、数据分析与智能聊天功能发布
  • 微知-如何查看PCIe设备插入在哪个插槽以及对应的busid?(biosdecode)
  • 数据结构 —— 树和二叉树简介
  • ubuntu安装boost
  • 【Spring AI】Java实现类似langchain的第三方函数调用_原理与详细示例
  • CIM系统:智慧城市的数字基石
  • Android中Fragment的使用场景与生命周期
  • 输入网址后,浏览器是如何高效渲染出网页的?
  • springboot单文件,多文件下载方式
  • JIT详解
  • 线下陪玩导游系统软件源码,家政预约服务源码(h5+小程序+app)
  • 模拟退火算法最常见知识点详解与原理简介控制策略
  • C语言高效内存管理:对齐、缓存与位域
  • ES操作指南
  • 【黑苹果】记录MacOS升级Sonoma的过程
  • 向“新”发力,朝“质”攀峰 | 资福医疗携手大圣胃肠一体内窥镜系统亮相江苏省医学会第八次健康管理学学术会议
  • springboot项目多个数据源配置 dblink
  • leetcode中哈希的python解法:Counter()介绍
  • VAS1800Q奇力科技线性芯片电荷泵热处理AEC-Q1000
  • Java 枚举的 valueOf() 方法与 Stream API 查找枚举对象
  • Git的认识及基本操作
  • python 日志库loguru
  • 基于SpringBoot+Vue+uniapp的在线招聘平台的详细设计和实现
  • Chrome谷歌浏览器加载ActiveX控件之JT2Go控件
  • Java基础概览和常用知识(七)
  • STL-string
  • 数据库基础-学习版
  • 【Gin】Gin框架介绍和使用