我最近遇到了一些看起来很奇怪的类,它有三个构造函数:
class Class
{
public:
explicit Class(int );
Class(AnotherClass );
explicit Class(YetAnotherClass, AnotherClass );
// ...
}
这对我来说真的没有意义——我认为显式关键字是为了保护编译器选择的结构不受外来类型的影响。
这是允许的吗?如果是,那是什么意思?