码迷,mamicode.com
首页 > 其他好文 > 详细

explicit 关键字

时间:2016-05-30 12:58:30      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?

如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:

 

技术分享

 

 

上面的操作即是所谓的"隐式转换"。

如果要避免这种自动转换的功能,我们该怎么做呢?就是关键字explicit的作用了,将类的构造函数声明为"显式",也就是在声明构造函数的时候前面添加上explicit即可,

这样就可以防止这种自动的转换操作,如果我们修改上面的MyClass类的构造函数为显式的,那么下面的代码就不能够编译通过了,如下所示:

 

技术分享

 

此时我们只有调用构造函数来构建对象了;

技术分享

 

 

  

  

 

explicit 关键字

标签:

原文地址:http://www.cnblogs.com/shihaochangeworld/p/5541937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!