Operator Overloading(Chapter 11 of The C++ Programming Language)
Implicit conversion can be suppressed by declaring a constructor explicit. That is, an explicit constructor will be invoked only explicitly. In particular, where a copy constructor is in principle needed, an explicit constructor will not be implicitly invoked.