C++11中explicit类型转换运算符的实例用法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"C++11中explicit类型转换运算符的实例用法",在日常操作中,相信很多人在C++11中explicit类型转换运算符的实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
自治区网络安全管理条例
贵阳星星美创意软件开发服务部
护苗 网络安全教育专题
广州大蕃鼠网络技术直播
家庭云服务器安全吗
迪庆如何设计网站服务器
中国网络安全公司统计
为什么网络技术要学习思科
服务器管理口跑数据业务
文明重启怎么找新的服务器
软件开发包含什么
中信银行招聘软件开发
一键服务器管理
网络安全和信息化应该
网络技术书六单元习题
太子爷是哪个服务器端
惠普服务器优势
服务器工控机稳定性
光遇服务器排名
服务器电源降噪
软件开发需要的素养
基于数据库实现业务逻辑
西安先通网络技术学校
中小学生网络安全教育记录
客户模式和服务器模式有什么区别
南京网络技术咨询价格
护苗网络安全课第三期
2020公共课网络安全知识提升
福建学习软件开发排行榜
云服务器可以绑定多少域名