title: Why overload copy assignment operator for a singleton class in C++?
body: <p>I know why to make default constructor and copy constructor private to implement singleton class in C++. But what I don't understand is that why make copy assignment operator private, because there will not be two existing objects to start with.</p>
  
  <p>My exploration brings two points:</p>
  
  <ol>
  <li><p>According to Alexandrescu in "Modern C++ Design", the assignment
  operator to be made private to prevent self-assignment.</p></li>
  <li><p>Second, according to <a href="http://en.wikipedia.org/wiki/Rule_of_three_%28C++_programming%29">rule of three</a>, if you define one of ctor,
  copy ctor and assignment operator for a class, you should define
  explicitly all three. So, is it a matter of following this rule
  only.</p></li>
  </ol>
  
  <p>So, what's your take on this?</p>