【前言】 今天遇到了个问题,被人问及 explicit 作用的时候,想不起来了 【正文】 简单的说,就是类的构造函数禁止隐式类型转换。先看一看微软大哥是如何说的: This keyword is a declaration specifier that can only be applied to inclass constructor declarations. Constructors declared explicit will not be considered for implicit conversions. For example: An explicit constructor cannot take part in implicit conversions. It can only be used to explicitly construct an object. For example, with the class declared above: The function call Note It is meaningless to apply explicit to constructors with multiple arguments, since such constructors cannot take part in implicit conversions. 总结一下,大致意思就是: (1) explicit 只能在类的内部使用,不能在外面声明。 (2)声明了explicit以后,就不允许隐式转换了。 (3)explicit对于多个参数的构造函数无任何意义。 |
|