User defined conversions are member functions which are used by the compiler for the conversions of values to (or from) program-defined types such as classes.
When converting a value to a program defined type, compiler tries to find the function which can do that. These functions are usually constructors called converting constructors.