Недавно я столкнулся с каким-то странным классом, в котором было три конструктора:
class Class
{
public:
explicit Class(int );
Class(AnotherClass );
explicit Class(YetAnotherClass, AnotherClass );
// ...
}
Это на самом деле не имеет смысла - я думал, что явное ключевое слово - защитить выбранную компилятором конструкцию от стороннего типа.
Это разрешено? Если это так, что это значит?