相关疑难解决方法(0)

2753
推荐指数
11
解决办法
81万
查看次数

multi-arg构造函数的显式关键字?

我最近遇到了一些奇怪的类,它有三个构造函数:

class Class
{
    public:
        explicit Class(int );

        Class(AnotherClass );

        explicit Class(YetAnotherClass, AnotherClass );

    // ...
}
Run Code Online (Sandbox Code Playgroud)

这对我来说没有意义 - 我认为显式关键字是为了保护编译器选择的构造免受外来类型的影响.

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

c++ explicit

34
推荐指数
1
解决办法
7377
查看次数

显式非单参数构造函数

任何人都可以解释为什么非单参数构造函数标记为显式编译?据我所知,这里绝对是无用的关键字,为什么这个编译没有错误?

class X
{
public:
    explicit X(int a, int b) { /* ... */}
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor explicit-constructor

7
推荐指数
2
解决办法
1171
查看次数