explicit禁止被用来执行隐式类型转换。仍可以进行显示转换

class B
{
public:
  explicit B(int x= 0,bool b = true);
}

void
doSomething(B obj) B obj; doSomething(obj) //没有问题 doSomething(28) //有问题,doSomething入参应该是B类类型,不是int类型,从int类型到B类型之前的隐式转换被禁止; doSomething(B(28)) //没有问题,使用B构造函数将int显示转换为一个B类型

 

posted @ 2020-10-19 14:42  唯一诺  阅读(102)  评论(0编辑  收藏  举报