fork download
  1. #include <cstdlib>
  2.  
  3. #include <iostream>
  4.  
  5. class Mamifero {
  6. public:
  7. Mamifero() {}~Mamifero() {}
  8.  
  9. virtual void somMamifero() const {
  10. std::cout << "\n\tSom de mamifero.\n";
  11. }
  12.  
  13. virtual void menu() const {
  14. Mamifero * mamPtr;
  15. int op;
  16. while (op != 5) {
  17. std::cout << "\n\t(1) Boi" <<
  18. "\n\t(2) Gato" <<
  19. "\n\t(3) Porco" <<
  20. "\n\t(4) Cachorro" <<
  21. "\n\t(5) Sair" <<
  22. "\n\tDigite: ";
  23. std::cin >> op;
  24. switch (op) {
  25. case 1:
  26. {
  27. mamPtr = new Mamifero();
  28. mamPtr - > somMamifero();
  29. break;
  30. }
  31. case 2:
  32. {
  33. mamPtr = new Mamifero();
  34. mamPtr - > somMamifero();
  35. break;
  36. }
  37. case 3:
  38. {
  39. mamPtr = new Mamifero();
  40. mamPtr - > somMamifero();
  41. break;
  42. }
  43. case 4:
  44. {
  45. mamPtr = new Mamifero();
  46. mamPtr - > somMamifero();
  47. break;
  48. }
  49. case 5:
  50. {
  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. class Boi: public Mamifero {
  63. public: void somMamifero() const {
  64. std::cout << "\n\tMuu ..! Muu..!!\n";
  65. }
  66.  
  67. void menu() const {
  68. Mamifero * mamPtr;
  69. mamPtr = new Boi();
  70. mamPtr - > somMamifero();
  71. }
  72. };
  73.  
  74. class Gato: public Mamifero {
  75. public: void somMamifero() const {
  76. std::cout << "\n\tMiAu ..! MiAu..!!\n";
  77. }
  78.  
  79. void menu() const {
  80. Mamifero * mamPtr;
  81. mamPtr = new Gato();
  82. mamPtr - > somMamifero();
  83. }
  84. };
  85.  
  86. class Porco: public Mamifero {
  87. public: void somMamifero() const {
  88. std::cout << "\n\tOinc ..! Oinc..!!\n";
  89. }
  90.  
  91. void menu() const {
  92. Mamifero * mamPtr;
  93. mamPtr = new Porco();
  94. mamPtr - > somMamifero();
  95. }
  96. };
  97.  
  98. class Cachorro: public Mamifero {
  99. public: void somMamifero() const {
  100. std::cout << "\n\tAu ..! Au..!!\n";
  101. }
  102.  
  103. void menu() const {
  104. Mamifero * mamPtr;
  105. mamPtr = new Cachorro();
  106. mamPtr - > somMamifero();
  107. }
  108. };
  109.  
  110. int main() {
  111. Mamifero * m = new Mamifero();;
  112. m - > menu();
  113. }
  114.  
  115. //https://pt.stackoverflow.com/q/170799/101
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
1
5
compilation info
prog.cpp: In member function ‘virtual void Mamifero::menu() const’:
prog.cpp:28:30: error: expected primary-expression before ‘>’ token
                     mamPtr - > somMamifero();
                              ^
prog.cpp:34:30: error: expected primary-expression before ‘>’ token
                     mamPtr - > somMamifero();
                              ^
prog.cpp:40:30: error: expected primary-expression before ‘>’ token
                     mamPtr - > somMamifero();
                              ^
prog.cpp:46:30: error: expected primary-expression before ‘>’ token
                     mamPtr - > somMamifero();
                              ^
prog.cpp: In member function ‘virtual void Boi::menu() const’:
prog.cpp:70:18: error: expected primary-expression before ‘>’ token
         mamPtr - > somMamifero();
                  ^
prog.cpp: In member function ‘virtual void Gato::menu() const’:
prog.cpp:82:18: error: expected primary-expression before ‘>’ token
         mamPtr - > somMamifero();
                  ^
prog.cpp: In member function ‘virtual void Porco::menu() const’:
prog.cpp:94:18: error: expected primary-expression before ‘>’ token
         mamPtr - > somMamifero();
                  ^
prog.cpp: In member function ‘virtual void Cachorro::menu() const’:
prog.cpp:106:18: error: expected primary-expression before ‘>’ token
         mamPtr - > somMamifero();
                  ^
prog.cpp: In function ‘int main()’:
prog.cpp:112:9: error: expected primary-expression before ‘>’ token
     m - > menu();
         ^
prog.cpp:112:11: error: ‘menu’ was not declared in this scope
     m - > menu();
           ^~~~
prog.cpp:112:11: note: suggested alternative: ‘enum’
     m - > menu();
           ^~~~
           enum
stdout
Standard output is empty