Недавно я наткнулся на какой-то странный класс, который имел три конструктора:Явное ключевое слово в конструкторе multi-arg?
class Class
{
public:
explicit Class(int);
Class(AnotherClass);
explicit Class(YetAnotherClass, AnotherClass);
// ...
}
Это на самом деле не имеет смысла для меня - я думал, что явное ключевое слово, чтобы защитить компилятор выбрал конструкцию из иностранного типа.
Это разрешено? Если это так, что это значит?
Этот дубликат получил больше/лучших ответов: [Почему явным образом разрешены конструкторы и конструкторы по умолчанию с двумя или более параметрами (не по умолчанию)?] (Https://stackoverflow.com/questions/4467142/why-is- явные-разрешенные-для-умолчанию-конструкторы-и-конструкторы-с-2 или больше) –