C++11中explicit类型转换运算符的实例用法
发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,这篇文章主要介绍"C++11中explicit类型转换运算符的实例用法",在日常操作中,相信很多人在C++11中explicit类型转换运算符的实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好
千家信息网最后更新 2024年10月18日C++11中explicit类型转换运算符的实例用法
这篇文章主要介绍"C++11中explicit类型转换运算符的实例用法",在日常操作中,相信很多人在C++11中explicit类型转换运算符的实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++11中explicit类型转换运算符的实例用法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
类型转换运算符
看下面的例子:
这时一个复数类的雏形,定义了一个double类型的类型转换运算符。有了它以后,可以像下面这样使用:
输出结果如下:
complex不支持输出运算符,所以编译器努力将c1转换成double类型以后输出。到目前为止都挺好。
真的是想转换成double?
再看下面的代码:
如果从数学的角度来讲,应该输出2.23606。但实际上,这段代码连编译都通不过。其原因是对于这段代码编译器有两种选择:一个是将c1转换称double然后加1;另一个是将1转换为复数(1+0i)以后执行复数加法。
需要程序员给个想法。
显式的类型转换运算符
为了消除二义性,一个办法就是使用explicit禁止隐式的double类型转换。代码如下:
由于无法进行隐式类型转换,所以下面的代码会出现编译错误:
这并不是什么大问题,因为转换为double输出这件事本身对不对都不好讲。代码中已经通过输出运算符重载提供了复数形式的输出功能。
输出如下:
到此,关于"C++11中explicit类型转换运算符的实例用法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
类型
运算符
运算
输出
代码
实例
复数
学习
编译
面的
更多
编译器
问题
帮助
不对
实用
接下来
不好
二义性
例子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
连云港网络安全公司
怎么查看帝国的数据库
丰台区自制软件开发经历
网络安全架构是什么
游戏服务器崩溃的原因
网络安全温馨提示语的模板
国三网络技术有笔试
做5年软件开发
上海移人网络技术有限公司
发证服务器
南京做网络安全的公司
未知的服务器标记
数据库50个字段多少内存
网络工程专业中的网络安全
国外服务器访问密匙
php照片怎么传入数据库
一个数据库实例由什么组成
网络安全中审计管理指什么
《网络安全法》的实施方案
派出所查获一起网络安全事故
医药魔方数据库可以试用吗
ssm 数据库传图片的思路
直播平台服务器地址在哪找的
小区住户数据库
长春java软件开发工资
网络安全意识形态内容
莱秀互联网科技有限公司
大的金融软件开发公司
软件开发实习日记录
深圳软件开发者攻略