c++ 多对象构造函数的显式关键字?

我最近遇到一些奇怪的课程,有三个构造函数:

class Class
{
    public:
        explicit Class(int );

        Class(AnotherClass );

        explicit Class(YetAnotherClass, AnotherClass );

    // ...
}

这对我来说没有什么意义 – 我认为明确的关键字是保护编译器选择的外部类型的构造。

这是允许的吗?如果是,它是什么意思?

在C 11中,多参数构造函数可以通过括号初始化隐式转换。

但是,在C11显式仅适用于单参数构造函数之前。对于多参数构造函数,它被忽略和had no effect

转载注明原文:c++ 多对象构造函数的显式关键字? - 代码日志