explicit修饰构造函数时,不允许隐式转换和隐式拷贝初始化。它只能出现在修饰构造函数时。
备注:含有一个参数的构造函数,如果其参数没有默认值,函数没有explicit修饰,则该构造函数可以叫做转换构造函数。拷贝、移动构造函数和用户定义的转换函数可能是函数模版;explicit的含义是不发生转换。
1 | struct A |
参考:
en.cppreference.com/w/cpp/language/explicit
aim higher
explicit修饰构造函数时,不允许隐式转换和隐式拷贝初始化。它只能出现在修饰构造函数时。
备注:含有一个参数的构造函数,如果其参数没有默认值,函数没有explicit修饰,则该构造函数可以叫做转换构造函数。拷贝、移动构造函数和用户定义的转换函数可能是函数模版;explicit的含义是不发生转换。
1 | struct A |
参考:
en.cppreference.com/w/cpp/language/explicit