title: Overloading the assignment operator vs. providing an implicit constructor
body: <p>I have just learned on page 563 of <strong>C++ Primer</strong> (5th edition) that one can overload the assignment operator. So, if I am writing a class <code>C</code> and it makes sense to assign an integer to an object of this class, then I can provide an assignment operator with an <code>rhs</code> of type <code>int</code>. Then the clients of my class can write:</p>
  
  <pre><code>C c;
  ...
  c = 5;
  </code></pre>
  
  <p><strong>Question:</strong> Is it true that if such an assignment makes sense, then an implicit constructor <code>C(int);</code> should also make sense? If so, then I should really define this constructor instead (which has other uses as well) and never need to overload the assignment operator. Am I missing something?</p>