Явное преобразование неявного VS

Стандартная библиотека C ++ Николая М. Йозаттиса утверждает:

Существует небольшая разница между

X x;
Y y(x) //explicit conversion

и

X x;
Y y = x; //implicit conversion

. первый создает новый объект типа Y, используя явное преобразование из типа X, тогда как последний создает новый объект типа Y, используя неявное преобразование ».

Я немного запутался в понятиях явного и неявного преобразования. Я предполагаю, что в обоих случаях вы берете X и вставляете его в Y как таковой - один использует конструктор Y, а другой - оператор присваивания.

Какая разница в том, как преобразование обрабатывается в этих двух случаев, что делает его явным / неявным и как это связано с созданием конструктора класса, определяемого с помощью «явного» ключевого слова, если вообще существует?

18
задан John Humphreys - w00te 17 August 2011 в 21:49
поделиться