作用
explicit关键字只能用于修饰只有一个参数的类的构造函数。它的作用是表明该构造函数是显式的,而非隐式的。默认状况下都是隐式的。
示例
class Age
{
public:
Age(int age_): age(age_)
{
}
private:
int age;
}
Age a=10;//合法
上述示例中,代码
Age a=10;
是合法的,会默认调用Age(10);
而
public:
explicit Age(int age_): age(age_)
{
}
private:
int age;
}
Age a=10;//不合法
上述代码中,代码
Age a=10;
是不合法的,不能隐式调用构造函数Age(10)。