Advertisement
RadioNurshat

Animals

May 26th, 2021
951
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <string>
  4. #include <vector>
  5. using namespace std;
  6.  
  7.  class Pet {
  8. protected:
  9.     string name;
  10. public:
  11.     Pet(string s) {
  12.         name = s;
  13.     }
  14.     Pet() {
  15.  
  16.     }
  17.     virtual string Sound() {
  18.         return "?";
  19.     }
  20. };
  21.  
  22. class Homa : public Pet {
  23. public:
  24.     int action;
  25.     Homa(string s, int n) :Pet(s) {
  26.         action = n;
  27.     }
  28.     string Action() {
  29.         if (action == 1) {
  30.             string a = "Хомяк спит";
  31.             return a;
  32.         }
  33.         if (action == 2) {
  34.             string a = "Хомяк бегает в колесе";
  35.             return a;
  36.         }
  37.     }
  38.     string Sound() override{
  39.         return "*Шумные звуки Хомяка*";
  40.     }
  41.     void sast() {
  42.         int n;
  43.         cout << "1 or 2 "; cin >> n;
  44.         action = n;
  45.     }
  46. };
  47.  
  48. class Popug : public Pet {
  49. public:
  50.     int action;
  51.     Popug(string s, int n) :Pet(s) {
  52.         action = n;
  53.     }
  54.     string Action() {
  55.         if (action == 1) {
  56.             string a = "Попугай отдыхает\n";
  57.             return a;
  58.         }
  59.         if (action == 2) {
  60.             string a = "Попугай летает по комнате\n";
  61.             return a;
  62.         }
  63.         if (action == 3) {
  64.             string a = "Попугай звенит в колокольчик \n";
  65.             return a;
  66.         }
  67.     }
  68.     string Sound() override {
  69.         return "Нерешительный Попугай " + this->name + " знает слишком много слов и не может выбрать";
  70.     }
  71.     void sast() {
  72.         int n; cout << "1 or 2 or 3" << endl;
  73.         cin >> n;
  74.         action = n;
  75.     }
  76. };
  77.  
  78. class Iguana : public Pet {
  79. public:
  80.     int action;
  81.     Iguana(string s, int n) :Pet(s) {
  82.         action = n;
  83.     };
  84.     string Action() {
  85.         if (action == 1) {
  86.             string a = "Игуана бездействует \n";
  87.             return a;
  88.         }
  89.         if (action == 2) {
  90.             string a = "Игуана медитирует \n";
  91.             return a;
  92.         }
  93.     }
  94.     string Sound() override {
  95.         return "Игуана " + this->name + " просто молчит\n";
  96.     }
  97.     void sast() {
  98.         int n;
  99.         cout << "1 or 2 " << endl; cin >> n;
  100.         action = n;
  101.     }
  102. };
  103.  
  104. int main() {
  105.     setlocale(LC_ALL, "ru");
  106.     Homa Homa1("Хомяк", 1);
  107.     //cout << Homa1.Action() << endl << endl;
  108.     //Homa1.sast();
  109.     //cout << Homa1.Action() << endl << endl;
  110.     Popug Popug1("Попугай", 1);
  111.     //cout << Popug1.Action() << endl << endl;
  112.     //Popug1.sast();
  113.     //cout << Popug1.Action() << endl << endl;
  114.     Iguana Iguana1("Игуана", 1);
  115.     //cout << Iguana1.Action() << endl << endl;
  116.     //Iguana1.sast();
  117.     //cout << Iguana1.Action() << endl;
  118.  
  119.     Pet** animals = new Pet*[3];
  120.     animals[0] = &Homa1;
  121.     animals[1] = &Popug1;
  122.     animals[2] = &Iguana1;
  123.  
  124.     for (int i = 0; i < 3; i++) {
  125.         cout << animals[i]->Sound() << endl;
  126.     }
  127.  
  128. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement