Стандартная библиотека С++ Николая М. Йосуттиса гласит:
Существует незначительная разница между
X x;
Y y(x) //explicit conversion
и
X x;
Y y = x; //implicit conversion
Далее, чтобы сказать: "Первый создает новый объект типа Y, используя явное преобразование из типа X, тогда как последнее создает новый объект типа Y, используя неявное преобразование".
Я немного смущен концепциями явного vs неявного преобразования, я думаю. В обоих случаях вы принимаете X и нажимаете его на Y как таковой - один использует конструктор Y, а один использует оператор присваивания.
Какая разница в том, как обращение обрабатывается в этих двух случаях, что делает его явным/неявным, и как это связано с созданием конструктора классов, определенного с помощью "явного" ключевого слова, если вообще?