title: Cannot call a pure virtual function in its abstract class?
body: <p>I have a code which is similar to this:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  class parent
  {
  public:
      parent()
      //does initializations here
      {
          start();
      }
      virtual void start()=0;
  }
  
  class child :public parent
  {
  public:
      child()
      {}
      void start()
      {
          std::cout &lt;&lt; "starting.." &lt;&lt; std::endl;
      }
  }
  </code></pre>
  
  <p>Calling the <code>start()</code> function in the constructor of parent class causes a <strong>linkage error</strong> <em>(unresolved external symbol)</em>. I thought this wouldn't be a problem, why does it? Is there an alternative way rather than calling the <code>start()</code> function manually after construction?</p>