explicit作用
阻止类构造函数的隐式自动转换。
由于C++的构造函数是默认支持隐式转换的(即默认是关键字implicit修饰)。
explicit使用场景
- 修饰只含一个参数的构造函数;
- 修饰除了第一个参数外其余参数都有默认值的构造函数。
当在上面两种情况以外的构造函数前加explicit时,explicit失效。
阻止类构造函数的隐式自动转换。
由于C++的构造函数是默认支持隐式转换的(即默认是关键字implicit修饰)。
当在上面两种情况以外的构造函数前加explicit时,explicit失效。