explicit关键字
Posted 羽珞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了explicit关键字相关的知识,希望对你有一定的参考价值。
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关键字的主要内容,如果未能解决你的问题,请参考以下文章