A constructor that can be called with a single argument is used for conversions from the type of the argument to the class type. Such a constructor is called a conversion constructor. Consider the following example:
class Point
{
public:
Point();
Point( int );
...
};
Sometimes a conversion is required but no conversion constructor exists in the class. These conversions cannot be performed by constructors. The compiler does not look for intermediate types through which to perform the conversion. For example, suppose a conversion exists from type Point
to type Rect
and a conversion exists from type int to type Point
. The compiler does not supply a conversion from type int to type Rect
by constructing an intermediate object of type Point
.