title: C++ Polymorphism Error
body: <p>I am using Polymorphism in C++ to create a basic 'family' in polymorphism. However, I get the errors, when trying to create the son boo: <code>error C2512: 'Son' : no appropriate default constructor available</code> and <code>error C2660: 'Son::Son' : function does not take 2 arguments</code>, which confuse me, as they are both parts of the <code>Child</code> class, which takes two arguments</p>
  
  <pre><code>#include &lt;iostream&gt;
  class Parent{
  public:
      Parent(char* name) : Name(name){};
      char* Name;
      void Speak(void){
          std::cout &lt;&lt; "I am a parent called " &lt;&lt; Name &lt;&lt; std::endl;
      }
  };
  class Child{
  public:
      Child(Parent* parent, char* name) : par(parent), Name(name){};
      Parent* par;
      char* Name;
      virtual void Speak(void){
          std::cout &lt;&lt; "I am a child, my name is " &lt;&lt; Name &lt;&lt; " and my parent's name is " &lt;&lt; par-&gt;Name &lt;&lt; std::endl;
      }
  };
  class Son : public Child{
  public:
      void Speak(void){
          std::cout &lt;&lt; "I am a son, my name is " &lt;&lt; Name &lt;&lt; " and my parent's name is " &lt;&lt; par-&gt;Name &lt;&lt; std::endl;
      }
  };
  int main(void){
      Parent Dad = Parent("James");
      Child Lisa = Child(&amp;Dad, "Lisa");
      Son Boo = Son(&amp;Dad, "Boo"); // Error here
      Dad.Speak();
      Lisa.Speak();
      Boo.Speak();
      getchar();
      return (0);
  }
  </code></pre>