explicit:
防止隐式转换使用。
隐式转换:不同类型的变量可以互相转换,如将一个整形数值赋值给一个类,ClassXX lei = 4;
C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。
也就是说:一个参数的构造函数与多个参数的构造函数是不一样的,多了另一个功能就是隐式转换。