来自:黄邦勇帅

1. 当类中带有一个参数的构造函数时,将执形对象的隐式转换,比如有类 A,有一个带有一个参数的构造函数A(int i){}则当出现语句A m=1;就会调用带有一个参数的构造函数来创建对象m,也就是将语句转换为A m(1)的形式。

2. 如果有一个函数,比如 void f(A j){}这个函数需要一个类A 的对象作为参数,但是当调用语句为f(2)时,同样能调用这个函数,这时函数的形 参A j 被解释为,A j=2 即会隐式调用带有一个参数的构造函数来创建一个对象j。

但是有一种形式的函数定义当出现语句 f(2)这样的调用时会出错,就是函数 f 定义的形式为 void f(A &j){}定义一个接受一个实参的引用时会出错,具体原因不清楚。但这几种情况都能正确调用void f(A j){},void f(const A j){};void f(constA & j){}。

3. 如果不需要这种隐式的类型转换则在构造函数前使用关见字 explicit,这个关见字只能用于构造函数前。如果在构造函数前使用explicit 关见字,这时语句 A m=1 和 f(2)都将出错。

4.声明为explicit的构造函数不能在隐式转换中使用。

最新文章

  1. 高性能javascript(记录二)
  2. C#访问Azure的资源
  3. Different types of keystore in Java Overview
  4. Modoer列表页性能分析及优化
  5. centos修改时区,设置时间
  6. 初试ubuntu14.4问题集锦
  7. Android Studio 配置SVN实现代码管理
  8. ORACLE Recyclebin管理及flashback recyclebin中的对象
  9. 关于 dos 下 npm 命令的使用
  10. matlab中 mcc、mbuild和mex命令详解
  11. Windows下查看硬连接引用技术
  12. VueJs 源码分析 ---(二)实力化生命周期,以及解析模版和监听数据变化
  13. [转] 使用babel-plugin-react-css-modules简化CSS Modules的使用
  14. JDK8新增接口的默认方法与静态方法
  15. 蓝牙协议分析(3)_BLE协议栈介绍
  16. 我的Java之旅 第六课 JAVA WEB 请求与响应
  17. C语言四舍五入
  18. 设计模式 (二)——观察者模式(Observer,行为型)
  19. 如何利用 Jmeter 测试上传文件
  20. vue 浏览器页面刷新时执行一段代码

热门文章

  1. BZOJ 4011 HNOI2015 落忆枫音 DAG上的dp(实际上重点在于分析)
  2. UVA 11883 Repairing a Road(最短路径+暴力枚举)
  3. Internet History,Technology and Security
  4. lintcode-109-数字三角形
  5. Ubuntu如何进入命令模式
  6. python practive
  7. hihoCoder #1872 : Pythagorean triple
  8. 【CF Round 434 B. Which floor?】
  9. Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) B
  10. SICAU-OJ:要我唱几首歌才能够将你捕捉