#include <iostream>

class Papa
{
protected:
   int iq;
   char gesund[100];
public:
   void Init(int Intelligenz, char * ginfo);
   int GetIQ(void);
   char* GetGesundheit(void);
};

class Sohn : public Papa
{
private:
   int Maturanote;
public:
   void Init(int Intelligenz, char* ginfo, int minfo);
   int GetMaturanote(void);
};

void  Papa::Init(int Intelligenz, char* ginfo)
{
   iq = Intelligenz;
   strcpy(gesund,ginfo);
}

int Papa::GetIQ()
{
   return iq;
}

char* Papa::GetGesundheit()
{
   return gesund;
}

void Sohn::Init(int Intelligenz, char* ginfo, int minfo)
{
   iq = Intelligenz;
   strcpy(gesund,ginfo);
   Maturanote=minfo;
}

int Sohn::GetMaturanote()
{
   return Maturanote;
}

int main()
{
   Papa DerArbeiter;

   DerArbeiter.Init(66,"toll");
   
   std::cout << "Der Arbeiter als Papa hat einen IQ von " << DerArbeiter.GetIQ() << ".\n";
   std::cout << "Seine Gesundheit ist mit " << DerArbeiter.GetGesundheit() << " zu beurteilen.\n\n";

   Sohn DerSportler;

   DerSportler.Init(88, "durchtrainiert", 2);
   std::cout << "Der Sportler, der Sohn vom Arbeiter hat einen IQ von " << DerSportler.GetIQ() << ".\n";
   std::cout << "Seine Gesundheit ist mit " << DerSportler.GetGesundheit() << " zu beurteilen.\n";
   std::cout << "Seine Matura hat er mit der Note " << DerSportler.GetMaturanote() << " absolviert. \n";

   return 0;

}