title: Redefinition of constructor with inheritance
body: <p>Why in the underlying example keeps the compiler complaining about a redefinition for the B constructor. If i remove the {} it complains they need to be there. How is this done correctly?
  I want to implement the constructor of B in the CPP file and not inline.</p>
  
  <pre><code>#include &lt;vector&gt;
  #include &lt;sstream&gt;
  #include &lt;iostream&gt;
  
  using namespace std;
  
  class A
  {
      public:
          A();
          ~A();
  };
  
  class B : public A
  {
      public:
          B() : A() {};
          ~B();
  };
  
  A::A()
  {
      cout &lt;&lt; "A construct!";
  }
  
  B::B()
  {
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
      cout &lt;&lt; "B construct!";
  }
  
  int main()
  {
      return 0;
  }
  </code></pre>