来源:https://www.cnblogs.com/DswCnblog/p/6513318.html
C++中的explicit
关键字只能用于修饰只有一个参数的类构造函数 , 它的作用是表明该构造函数是显示的, 而非隐式的,跟它相对应的另一个关键字是implicit
, 意思是隐藏的,类构造函数默认情况下为implicit(隐式)。
关于explicit关键字,先看看MSDN上的解释:
This keyword is a declaration specifier that can only be applied to in-class constructor declarations . An explicit constructor cannot take part in implicit conversions. It can only be used to explicitly construct an object 。
从上面的解释可以看到, explicit关键字的作用: 禁止隐式调用类内的单参数构造函数, 这主要包括如下三层意思:
-
(1)该关键字只能用来修饰类内部的构造函数
-
(2)禁止隐式调用拷贝构造函数
-
(3)禁止类对象之间的隐式转换