C ++提供了关键字explicit来抑制隐式转换 转换构造函数,不允许进行此类转换。一个 声明显式的构造函数不能在隐式中使用 转换。在单参数构造函数上使用explicit关键字 编译器不应该使用它来执行隐式 转化
这是有道理的,但我还应该使用关键字explicit来复制构造函数吗?在其他情况下使用关键字explicit和为什么有用?
答案 0 :(得分:4)
明确声明复制构造函数是合法的。声明与否真的取决于你想做什么。例如,如果要禁止在函数调用或使用复制初始化语法时隐式调用它,则声明复制构造函数explicit
。