explicit的作用

简单说就是用在构造函数前面 禁止隐式类型转换
比如class cls
{
explicit cls(int i)
{...}
};
另外有一个函数
void f(cls obj)
{
...
}
int i=0;
这时候调用f(i)就是错误的
没有explicit的话就可以用i隐式建立一个对象
这样做(显示调用构造函数)就是对的:cls obj(i);
原文地址:https://www.cnblogs.com/yanglf/p/3044097.html