IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C++】四种类型的转换 -> 正文阅读

[C++知识库]【C++】四种类型的转换

C++四种类型的转换

包括这四种:const_cast , static_cast , dynamic_cast , reinterpret_cast

先来说下C语言中的类型转换,非常的暴力,就是耍流氓:

float a = 12.23;
int b = (int)a;

下面我写的都是最基础的,简单的,下面这篇文章写的很详细,我还刚学这东西,就只是写一下我自己的理解:

c++ 四种强制类型转换介绍_ydar95的博客-CSDN博客_c++指针类型强转c++ 四种强制类型转换介绍const_cast , static_cast , dynamic_cast , reinterpret_cast1.https://blog.csdn.net/ydar95/article/details/69822540

static_cast

int main()
{
	float a = 12.23;
	int b = static_cast<int>(a);  //尖括号中的就是想转的类型
	//等同于int b = (int)a;
	cout << b << endl;
}

基本数据类型的转换,就靠static_cast来进行转换!!!

const_cast

int main()
{
	const int a = 10;
	int* p = const_cast<int*>(&a);   //const_cast在这块的作用就是去常性
	//这行代码等于int* p = (int*)&a;  这玩意是C语言中的强转
}

?const_cast去常性!!!

reinterpret_cast

int main()
{
	int a = 10;
	char* pq = reinterpret_cast<char*>(&a);
    //和C语言中强转char* p = (cahr*)(&a);
}

整型a,为什么可以将int的地址赋值给char* p呢,拿reinterpret_cast对a的地址进行重新解释,赋值给char* p,相当于C语言中的char* p = (cahr*)(&a);

dynamic_cast

class Object
{
public:
	virtual void fun() {}
};

class Base:public Object
{
public:
	virtual void fun() {}
};

int main()
{
	Object* op = NULL;
	Base* bp = NULL;

	Object obj;  //基类对象
	Base base;  //派生类对象

	op = dynamic_cast<Object*> (&base); //从派生类指针转换到基类指针
    //相当于:op = &base;
    //需要注意的是,我们不能将基类指针转换到父类指针
} 

dynamic_cast将派生类base转换成Object*赋值给基类指针(派生类指针转换到基类指针),但是不可以将基类指针转换到父类指针,会报错(无法将Object* 类型转换到Base*)

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:30:29  更:2022-03-21 20:30:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:02:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码