先看示例代码:
class Maker
{
public:
Maker(int n)
{
}
};
int main()
{
Maker m = 10;
}
在上述代码中,main函数里我们实例化对象名称为m,并且赋值为10,作为有参构造函数的参数。但是实际上编译器会将这一行代码进行优化。
优化后的代码如下:
Maker m = Maker(10);//Maker m = 10;
上述编码器优化后的代码是不是顺眼多了~~~
那么言归正传,回归本文的主题,explicit关键字的作用是什么呢?我们不妨试试看!
先看示例代码:
运行看看,运行结果如下:
如上所示,程序报错,所以我们加上关键字explicit的作用是防止编译器优化类似于Maker m = 10这种的代码。
并且需要注意的是explicit只能放在构造函数前面,构造函数只有一个参数或其他参数有默认值时。
如果觉得这篇文章还不错的话,记得点赞 ,支持下!!!