10.13. explicit Constructors and Conversion Operators
Recall that we’ve been declaring as
explicit every constructor that can be called with one argument. With the exception of copy constructors, any constructor that can be called with a single argument and is not declared
explicit can be used by the compiler to perform an implicit conversion. The constructor’s argument is converted to an object of the class in which the constructor is defined. The conversion is automatic and you need not use a cast operator. In some situations, implicit conversions are undesirable or error-prone. For example, our
Array class in Fig. 10.10 defines a constructor that takes a single
int argument. The intent of this constructor is to create an
Array object containing ...