写在最前面:
explicit关键字可以用在类的构造函数前,用于限制该构造函数不可以进行隐式的类型转换
举个例子(来自Geeksforgeeks):
考虑一个类:
在主函数中做如下操作
输出将为:“same”
原因在于,Complex(double r=0.0, double i=0.0)在只传入一个参数的时候也可以被调用。所以,当进行com1 == 3.0
这种操作时,3.0被隐式的转换为了Complex类。
这种自动转换的操作有时并不是我们希望发生的,因此我们可以在构造函数前增加一个explict关键字,表明不可以进行隐式操作,如下所示: