I have the following code in c++ using polymorphism how would I convert D-language polymorphism?
#include <cstdlib>
#include <iostream>

class Mamifero
{
 protected:
   int idade;

 public:
   Mamifero(){}
   ~Mamifero(){}

   virtual void somMamifero() const
   {
     std::cout<<"\n\tSom de mamifero.\n";
  }
};

class Boi: public Mamifero
{
 public:
   void somMamifero() const
   {
    std::cout<<"\n\tMuu ..! Muu..!!\n";
   }
};

class Gato: public Mamifero
{
 public:
   void somMamifero() const
   {
    std::cout<<"\n\tMiAu ..! MiAu..!!\n";
   }
};

class Porco: public Mamifero
{
 public:
   void somMamifero() const
   {
    std::cout<<"\n\tOinc ..! Oinc..!!\n";
   }
};

class Cachorro: public Mamifero
{
 public:
   void somMamifero() const
   {
    std::cout<<"\n\tAu ..! Au..!!\n";
   }
};

int main()
{
  Mamifero* mamPtr;
  int op;
  while(op != 5)
  {
    std::cout<<"\n\t(1) Boi"
             <<"\n\t(2) Gato"
             <<"\n\t(3) Porco"
             <<"\n\t(4) Cachorro"
             <<"\n\t(5) Sair"
             <<"\n\tDigite: ";
     std::cin>>op;
   switch(op)
    {
     case 1:{
       mamPtr = new Boi();
       mamPtr->somMamifero();
       break;
      }
     case 2:{
       mamPtr = new Gato();
       mamPtr->somMamifero();
       break;
      }
     case 3:{
       mamPtr = new Porco();
       mamPtr->somMamifero();
       break;
      }
     case 4:{
       mamPtr = new Cachorro();
       mamPtr->somMamifero();
       break;
      }
     case 5:{
       std::cout<<"\n\tGood Bye\n\n";
       exit(0);
       break;
      }
     default:
       std::cout<<"\n\tOpção Inválida ..!!!\n";
    }
  }
}

Reply via email to