C++类型转换

上行转换:小类型转大类型(子类转换为父类)一定是安全的

下行转换:大类型转小类型(父类转换为子类)

C风格的转换格式简单,但是在转换过程中会出现问题,当下行转换过程中会丢失父类的属性。

C风格的类型转换(Type) Expression

C++为了克服这些缺点引入了4种不同类型的转换操作符

static_cast静态类型转换
reinterpreter_cas重新解释类型转换。
dynamic_cast子类和父类之间的多态类型转换。
const_cast去掉const属性转换

1.static_cast 静态类型转换:

▲static_cast<目标类型>(要转换的参数)

静态类型转换父类转换为子类不安全。

#include <iostream>
using namespace std; 

int main(void)
{
	double dPi = 3.1415926;
	int num1 = (int)dPi;    //c语言的旧式类型转换
	int num2 = dPi;         //隐式类型转换
	// 静态的类型转换:   
	// 在编译的时 进⾏行基本类型的转换 能替代c⻛风格的类型转换 可以进⾏行⼀一部分检查     
	int num3 = static_cast<int> (dPi); //c++的新式的类型转换运算符   
	cout << "num1:" << num1 << " num2:" << num2 << " num3:" << num3 << endl;
	return 0;
}

2.dynamic_cast子类和父类之间的多态

▲dynamic_cast<目标类型>(要转换的参数)

用于子类与父类之间的转换

未写完!!!!!!!!!!

原文章:https://blog.youkuaiyun.com/qq_40421919/article/details/90677220?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162771236116780274190564%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162771236116780274190564&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-90677220.first_rank_v2_pc_rank_v29&utm_term=C%2B%2B%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2&spm=1018.2226.3001.4187

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值