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