explicit
来源:互联网 发布:java流程图制作软件 编辑:程序博客网 时间:2024/06/06 07:06
/*explicit:只用于构造函数没有explicit下面四种语义都可以:MySoc ms1 = 66; //默认数据转MySoc ms2(99);MySoc ms3 = MySoc(5); MySoc ms4 = (MySoc)5; 上面可以解释为 数据转换、构造、赋值 造成了代码的歧义。有explicit 限定了自动转换。没有 explicit ,代码歧义多,可以解释为构造 或 数据转换。*/#include<iostream>using namespace std;class MySoc{public:int x;explicit MySoc(int data) :x(data){}};void main(){/*MySoc ms1 = 66; //默认数据转MySoc ms2(99);MySoc ms3 = MySoc(5); 标准MySoc ms4 = (MySoc)5; *///上面这几种写法都可以,但是也带来了阅读的理解。//代码不够清析,不能看出是 构造 还是 类型转换 或者是 赋值。//没有 explicit ,代码歧义多,可以解释为构造 或 数据转换。//有 explicit MySoc ms(99);//MySoc ms1 = 99;//explici 限定自动转换,但可以强制转换。如下代码MySoc ms1 = (MySoc)99;cout << ms.x << endl;cin.get();}
0 0
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- Windows批处理 - 给自己写个库(3. INI文件的读取)
- scala的函数定义、流程控制和异常处理
- 字符串首字母排序
- ActiveMQ实现负载均衡+高可用部署方案
- linux下解压tgz文件
- explicit
- 蓝桥之圆面积
- IP头、TCP头、UDP头详解以及定义(全)
- LeetCode No.78 Subsets
- openwrt环境搭建
- 解决子div撑不开父div
- CentOS 安装tcpreplay
- Serializable和Parcelable如何选择?
- 通过包名获取apk安装路径