C++中的四种类型转换
2024-08-24 20:16:50
//1.常见的类型转换,使用static_cast
float f = 1.234;
int i =static_cast<int>(f);//等价于 int i = (int)f;
//2.const_cast,将常量指针(指针指向的地址的值不能变)转变成非常量指针
int a = 1;
const int * b = &a;
*(const_cast<int*>(b)) = 2;
//3.dynamic_cast,主要用于子类父类之间的转换,使用这个关键字进行转换会在转换时进行类型检查,检测类型是否合法。
//用于多态,也就是说要转换的类必须有虚函数。
//4.reinterpret_cast是解释的意思,reinterpret即为重新解释,
//此标识符的意思即为数据的二进制形式重新解释,但是不改变其值。如:
int j;
char *ptr = "a";
j =reinterpret_cast<int >(ptr);//这个转换方式很少使用。
return 0;
最新文章
- C++链表
- 关于mouse_event和sendinput无效的原因
- hadoop机架感知与网络拓扑分析:NetworkTopology和DNSToSwitchMapping
- Java并发之死锁实例
- asp.net core csrf
- Linux就这个范儿 第19章 团结就是力量 LSB是Linux标准化基地(Linux Standards Base)的简称
- iso中自动伸缩属性
- Unable to execute dex: method ID not in [0, 0xffff]: 65536
- Web Service学习之一:Web Service原理
- 整体认识flume:Flume介绍、分布式安装、常见问题及解决方案
- 关于在同一个DIV下的Hover效果问题
- ios入门OC_UI晋级学什么?
- 设计模式学习系列(一)——IOC设计原则
- Python-写文件
- DevExpress Grid使用checkBox选中的方法
- Spring Boot 2 - 初识与新工程的创建
- 字符集之在UTF-8中,一个汉字为什么需要三个字节?
- 基于神经网络的颜色恒常性—Fully Convolutional Color Constancy with Confidence-weighted Pooling
- [cipher][archlinux][disk encryption][btrfs] 磁盘分区加密 + btrfs
- 前m大的数(hdu1280)