explict函数

implicit: 含蓄的,内含的,隐式,隐性
explicit: 清楚明白的,显式,直言的

explicit关键字只能用于修饰只有一个参数的类构造函数

它的作用是表明该构造函数是显示的, 而非隐式的

跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).

显示声明的构造函数和隐式声明的有什么区别呢???

implicit 默认的构造方法是存在 一个隐式转换的.

例如 CxString string2 = 10;

编译器自动将整型转换为CxString类对象,实际上等同于下面的操作:

1
2
3
4
CxString string2(10);  

CxString temp(10);
CxString string2 = temp;

explicit关键字的作用就是防止类构造函数的隐式自动转换.