0

C++ 提供了关键字 explicit 以在不允许进行此类转换时通过转换构造函数抑制隐式转换。声明为显式的构造函数不能用于隐式转换。在编译器不应使用的单参数构造函数上使用显式关键字来执行隐式转换。

这是有道理的,但是我仍然应该对复制构造函数使用关键字显式吗?在其他什么情况下使用关键字explicit 会有用,为什么?

4

1 回答 1

4

显式声明复制构造函数是合法的。宣布与否真的取决于你想做什么。例如,explicit如果要禁止在函数调用时或使用复制初始化语法隐式调用复制构造函数,则声明复制构造函数。

于 2015-12-15T10:56:41.647 回答