鱼C论坛

 找回密码
 立即注册
查看: 922|回复: 1

隐式转换

[复制链接]
发表于 2023-10-28 19:35:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
对于 combine 函数的声明,当我们调用 i.combine(s) 时发生什么情况?其中 i 是一个 Sales_data,而 s 是一个 string 对象。

Sales_data &combine(Sales_data&);
这个可以正常编译吗?系统会直接将字符串类型转换成Sales_data,是这样的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-28 19:37:00 | 显示全部楼层
在调用 i.combine(s) 时,编译器会尝试进行隐式转换,将字符串类型的 s 转换为 Sales_data 类型,然后调用 combine 函数。

根据 combine 函数的声明  Sales_data &combine(Sales_data&); ,它接受一个 Sales_data 的引用作为参数,并返回一个 Sales_data 的引用。因此,编译器会尝试找到一个适合的隐式转换来将 s 转换为 Sales_data 类型。

如果存在一个合适的隐式转换构造函数或转换操作符,可以将字符串类型转换为 Sales_data 类型,那么编译可以通过,并且会在调用 combine 函数时进行隐式转换。

如果没有找到合适的隐式转换,编译会失败,因为无法将字符串类型直接转换为 Sales_data 类型。

需要注意的是,隐式转换可能会导致意外的结果,因此在使用隐式转换时,应该谨慎考虑可能产生的副作用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 17:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表