title: Calling a member function of a derived class from the base class constructor
body: <p>Suppose I have</p>
  
  <pre><code>struct C {
     C() { init(); };
     void init() { cout &lt;&lt; "C" &lt;&lt; endl; };
  };
  
  struct D : public C {
     D() : C() { };
     void init() { cout &lt;&lt; "D" &lt;&lt; endl; }
  };
  
  D();
  </code></pre>
  
  <p>why I get "C" printed? How can change this behaviour (and get "D").</p>
  
  <p>How if I want both?</p>