title: Base class on the initialisation list of a derived class' copy constructor (C++)
body: <p>Let the example be:</p>
  
  <pre><code>class Base {
    Base (const Base &amp; copyFrom) { globalRegister (* this); }
  }
  
  class Derived {
    Derived (const Derived &amp; copyFrom) : Base (copyFrom) {}
  }
  </code></pre>
  
  <p>I've read suggestions to include the Base's copy constructor on the initialisation list of Derived in order to copy over the Base's properties (as in the example).</p>
  
  <p>However, I have the Base's copy constructor passing itself (* this) to other object (to be registered with that object). Would that be a case where I actually must use (implicitly or explicitly) Base's (default) constructor on the initialisation list of Derived's copy constructor, and call the Base's copy constructor only in the body of Derived's copy constructor, when there is actually an object that can be attached by Base's copy constructor? Else - is (* this) a valid object?</p>