本篇开始讲第四种转换方式reinterpret_cast,这种转换方式是最简单的,等价于C中的显式强转
C++新特性09_强制转换reinterpret_cast
1. 显式强转
int n = 1;
//显式强转
int* p = (int*)n;
C++中为了统一,还是创建了一种转换方式来替代显式强转,即 reinterpret_cast,增加了代码的可读性。
2. reinterpret_cast
(1)用于进行各种不同类型的转换
不同类型指针之间;不同类型引用之间;指针和能容纳指针的整数类型之间的转换
(2)编译期处理,执行的是逐字节复制的操作,运行期不进行检查
(3)类似于显式强转,后果自负
3.学习视频地址:强制转换reinterpret_cast
4.学习笔记:强制转换reinterpret_cast笔记
#include <iostream>
#include <string>
class CFather {};
class CSon :public CFather {};
int main() {
int n = 1;
//显式强转
//int* p = (int*)n;
//用于各种高危险的转换方式
//整型转指针
int* p = reinterpret_cast<int*>(&n);
//各种类型的指针转换
char* pCh = reinterpret_cast<char*>(p);
//父类子类指针
CSon* pSon=nullptr;
CFather* pFather = nullptr;
pSon = reinterpret_cast<CSon*>(pFather);//不存在检查
}