fork(1) download
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. class Mamifero
  5. {
  6. public:
  7. Mamifero(){}
  8. ~Mamifero(){}
  9.  
  10. virtual void somMamifero() const
  11. {
  12. std::cout<<"\n\tSom de mamifero.\n";
  13. }
  14.  
  15. virtual void menu() const
  16. {
  17. Mamifero* mamPtr;
  18. int op;
  19. while(op != 5)
  20. {
  21. std::cout<<"\n\t(1) Boi"
  22. <<"\n\t(2) Gato"
  23. <<"\n\t(3) Porco"
  24. <<"\n\t(4) Cachorro"
  25. <<"\n\t(5) Sair"
  26. <<"\n\tDigite: ";
  27. std::cin>>op;
  28. switch(op)
  29. {
  30. case 1:{
  31. mamPtr = new Mamifero();
  32. mamPtr->somMamifero();
  33. break;
  34. }
  35. case 2:{
  36. mamPtr = new Mamifero();
  37. mamPtr->somMamifero();
  38. break;
  39. }
  40. case 3:{
  41. mamPtr = new Mamifero();
  42. mamPtr->somMamifero();
  43. break;
  44. }
  45. case 4:{
  46. mamPtr = new Mamifero();
  47. mamPtr->somMamifero();
  48. break;
  49. }
  50. case 5:{
  51. std::cout<<"\n\tGood Bye\n\n";
  52. exit(0);
  53. break;
  54. }
  55. default:
  56. std::cout<<"\n\tOpção Inválida ..!!!\n";
  57. }
  58. }
  59. }
  60.  
  61. };
  62.  
  63. class Boi: public Mamifero
  64. {
  65. public:
  66. void somMamifero() const
  67. {
  68. std::cout<<"\n\tMuu ..! Muu..!!\n";
  69. }
  70.  
  71. void menu() const
  72. {
  73. Mamifero* mamPtr;
  74. mamPtr = new Boi();
  75. mamPtr->somMamifero();
  76. }
  77. };
  78.  
  79. class Gato: public Mamifero
  80. {
  81. public:
  82. void somMamifero() const
  83. {
  84. std::cout<<"\n\tMiAu ..! MiAu..!!\n";
  85. }
  86.  
  87. void menu() const
  88. {
  89. Mamifero* mamPtr;
  90. mamPtr = new Gato();
  91. mamPtr->somMamifero();
  92. }
  93. };
  94.  
  95. class Porco: public Mamifero
  96. {
  97. public:
  98. void somMamifero() const
  99. {
  100. std::cout<<"\n\tOinc ..! Oinc..!!\n";
  101. }
  102.  
  103. void menu() const
  104. {
  105. Mamifero* mamPtr;
  106. mamPtr = new Porco();
  107. mamPtr->somMamifero();
  108. }
  109. };
  110.  
  111. class Cachorro: public Mamifero
  112. {
  113. public:
  114. void somMamifero() const
  115. {
  116. std::cout<<"\n\tAu ..! Au..!!\n";
  117. }
  118.  
  119. void menu() const
  120. {
  121. Mamifero* mamPtr;
  122. mamPtr = new Cachorro();
  123. mamPtr->somMamifero();
  124. }
  125. };
  126.  
  127. int main()
  128. {
  129. Mamifero *m = new Mamifero();;
  130. m->menu();
  131. }
Success #stdin #stdout 0s 3472KB
stdin
1
5
stdout
	(1) Boi
	(2) Gato
	(3) Porco
	(4) Cachorro
	(5) Sair
	Digite: 
	Som de mamifero.

	(1) Boi
	(2) Gato
	(3) Porco
	(4) Cachorro
	(5) Sair
	Digite: 
	Good Bye