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

explicit关键字

时间:2016-09-06 00:49:39      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

1.通过关键字,可以禁止“单参数构造函数(single argument constructor)”被用于自动类型转换。

典例:群集类别
// 可以将初始长度作为参数传给构造函数。
例:

class a {
      a (int size); // 这个构造函数有能力将一个int自动转换为a。
};

 

a temp;
temp = 10; // 允许

 

class a {
    explicit a (int size); // 加上explicit,上一个代码不被允许
};

 

2.explicit 能阻止以赋值语法进行带有转型操作的初始化。

a temp1(10); // 正确
a temp2 = 10; // 错误

??

因为

A a;

B b(a);    // explicit conversion
A a;
B b = a;   // implicit conversion

这两者之间存在着差异,前者是通过显式类型,根据类型A产生了一个类型为B的新对象;

而后者通过隐式类型转换,产生一个类型为B的新对象。

explicit关键字

标签:

原文地址:http://www.cnblogs.com/xieyuanzhen-Feather/p/5844100.html

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