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