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