C++ explicit用法
explicit关键字
explicit 作用
在 C++中, explicit 关键字用来修饰类的构造函数, 被修饰的构造函数的类, 不能发生相应的隐式类型转换, 只能以显式的方式进行类型转换.
explicit 使用注意事项:
- explicit 关键字只能用于类内部的构造函数声明上;
- explicit 关键字作用于单个参数的构造函数 (多个参数也适用, 但必须只有一个参数需要赋值, 其他的参数要有默认值).
- 在 C++ 中, explicit 关键字用来修饰类的构造函数, 被修饰的构造函数的类, 不能发生相应的隐式类型转换.
1 |
|
上述的classes B和C的构造函数都被声明为explicit,这可以组织它们被用来执行隐式类型转换,但它们仍然可以被用来进行显式类型转换:
1 |
|
被声明为explicit二点构造函数通常比其non-explicit兄弟更受欢迎,因为它们禁止编译器执行非预期(往往不被预期)的类型转换。除非我有一个好的理由允许构造函数被用于隐式转换,否则我会把它声明为explicit。
C++ explicit用法
https://gstarmin.github.io/2023/03/13/Cpp-explicit用法/