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

C++面经(一)

1、类型转换

1.1 、static_cast

double d = 1.234;
int a = static_cast<int>(d);

用于非多态类型的静态转换,不能用于两个不相关类型之间的转换。

常用于子类的指针或引用 向上转换成 基类的指针或引用 --> 安全(反之,基类转换成子类是不安全的);

1.2、const_cast

const int a = 2;
int* p = const_cast<int*>(&a);
*p = 3;
cout << a ; // 3

用于强制去除类似于被const修饰的常数特性。

即:删除变量的const属性,可以给const对象重新赋值。

1.3、dynamic_cast

用于将基类的引用或指针 转换成 子类的引用或指针(弥补static_cast转换的不足)

注意事项:1、dynamic_cast父类转成子类时,父类必须含有虚函数。2、dynamic_cast转换之前,会先做安全检查(能成功就转换,不能转换返回0)

1.4、reinterpret_cast

int a = 1;
int* p = reinterpret_cast<int*>(a); // 用static_cast就会报错

reinterpret_cast一般用于强制类型转换(指针/引用->整形,整形->指针/引用)


http://www.mrgr.cn/news/66694.html

相关文章:

  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第十八集补充:制作空洞骑士独有的EventSystem和InputModule
  • 论文学习笔记(一)
  • FBX福币交易所A股三大指数小幅低开 稀土永磁板块回调
  • 62-Java-面试专题(1)__基础
  • Chrome 130 版本开发者工具(DevTools)更新内容
  • 基于redis实现延迟队列
  • 【Ajax】跨域
  • AIDD - 分子药物发现的计算方法现状总结
  • 基于springboot+vue实现的旅行社网站系统
  • 辐射发射测试新境界:深入解析TS-RadiMation套件多种操作方法(一)
  • ubuntu 22.04 server 安装 mysql 5.7.40 更改 datadir 目录 LTS
  • 表单同时提交多条记录的技术实现
  • awk工具使用
  • 【Python编程实例】-深入理解Python线程安全
  • 【2023工业图像异常检测代码复现】DDAD: 基于条件去噪扩散模型的异常检测方法
  • [MySQL]DCL语句
  • APP开发者如何选择合适的聚合平台?
  • 论文写作总结
  • 【FL0016】基于SpringBoot和微信小程序的超市售货管理平台
  • 基于51单片机的步进电机定时控制proteus仿真
  • 管家婆财贸ERP BB018.出库类单据批量生单
  • 如何使用java雪花算法在分布式环境中生成唯一ID?
  • 东胜物流软件 AttributeAdapter.aspx SQL 注入漏洞复现
  • PN-850光伏功率预测系统|新能源场站发电功率预测|光功率预测系统|光伏发电功率预测系统的组成方案|风电/光伏功率预测系统
  • FastDDS服务发现之PDP和EDP的收发
  • 性能测试设计的内容和方法(上)