第11章 使用类——类型转换(一)将内置类型转换为自定义类型

本文是基于《C++ Primer Plus》的读书笔记,探讨如何在C++中进行类型转换,特别是将内置类型转换为自定义类型。通过类的构造函数实现隐式和显式转换,并举例说明了隐式转换的生效场景。文中还通过一个重量转换类Stonewt阐述了如何避免转换二义性。
摘要由CSDN通过智能技术生成

本文章是作者根据史蒂芬·普拉达所著的《C++ Primer Plus》而整理出的读书笔记,如果您在浏览过程中发现了什么错误,烦请告知。另外,此书由浅入深,非常适合有C语言基础的人学习,感兴趣的朋友可以自行阅读此书籍。

类型转换

自动转换也叫隐式转换。 强制类型转换也叫显式强制类型转换。

将一个标准类型变量的值赋给另一种标准类型的变量时,如果这两种类型兼容,则C++自动将这个值转换为接收变量的类型。
如下面的语句:

long count = 8; // 将int类型转换成了long类型
double time = 11; //将int类型转换成了double类型
int side = 3.33; //将double类型数据转换成了int数据,从浮点转换为整型,小数消失

上述的操作可以成功,是因为在C++中,各种数值类型都表示相同的东西——一个数字,同时C++包含用户进行转换的内部规则。

C++语言不自动转换不兼容的类型。例如下面的语句是非法的:

int *p = 10;

虽然指针的地址可能是个数字,但从概念上说,整数和指针完全不同。然而,在无法自动转换时,可以使用强制类型转换。

int *p = (int *)10;  //这个语句可以编译成功,即使它可能没有意义。

可以将类定义成与基本类型或另一个类相关,使得从一种类型转换为另一种类型是有意义的。因此,我们需要在设计类的同时,使类具有自动转换,或强制类型转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值