explicit 隐式转换与显示转换
来源:互联网 发布:正元恒邦行情分析软件 编辑:程序博客网 时间:2024/06/06 05:26
explicit关键字:用于防止单参数构造函数的隐式转换功能(多参数构造函数不会执行隐式转换)
class myDig { int value;public: explicit myDig(int n) { value = n; }}void doSomething(myDig num); //函数,接受一个myDig参数,函数体不重要,故省略void Test1() { myDig dig1; doSomething(dig1); // 正确 myDig dig2(10); // 正确 doSomething(10); // 错误,myDig不支持隐式转换 doSomething(myDig(10)); //正确,调用**类型转换操作符**进行显示转换(也叫转型,cast), 调用myDig构造函数。}/* * 如果去掉explicit则doSomething(10)正确, 执行了隐式转换 * 过程相当于执行 myDig tmp(10); doSomething(tmp); * * myDig dig3 = 10; //正确,也是隐式转换。 * /
在Effective c++中
被声明为explicit的构造函数通常比其non-explicit兄弟更受欢迎,因为它们禁止编译器执行非预期(往往也不被期望)的类型转换。
阅读全文
0 0
- explicit 隐式转换与显示转换
- explicit 显示转换 (不允许隐式转换)
- 隐式转换 && explicit 显示初始化
- C++ explicit与隐式转换函数
- 隐式转换与explicit关键字
- 菜鸟之隐式转换(implicit)、显示转换(explicit)及转换函数(operator()const)
- 转换函数 与 explicit
- explicit 禁止隐式转换
- C++中 explicit显示转换
- explicit关键字(显示转换)
- C++ 隐式类型转换与关键字explicit
- C++ 隐式类型转换与关键字explicit
- explicit 与 构造函数 (防止隐式转换)
- explicit与类类型转换
- c++ 防止隐式转换 explicit
- C++ explicit关键字(隐式转换)
- C++中的类型转换之隐式与显示转换
- 隐式转换与显示转换的区别概念理解
- Java中的StringUtils类
- Spring的HelloWorld
- PCNTL在centos中安装以及多进程更新数据
- Android动态加载热更新修复功能 加载多个dex
- NotePad++使用技巧之宏的使用
- explicit 隐式转换与显示转换
- 从Excle导入到Oracle数据库方法总结
- 前端sublime-text3 这些就够了
- Oracle、Mysql之事务及四大特性
- 将自己的vim打造成IDE
- restful接口总结
- css的不常用效果总结
- JqGrid动态列实现
- python网络系列之一(urllib2的基本用法)