Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. class Bird
  5. {
  6. protected:
  7. //Поля:
  8.     int age;
  9.     string color;
  10. public:
  11. //Конструкторы:
  12.     Bird()
  13.     {
  14.         cout << "Вызван конструктор по умолчанию класса Bird\n";
  15.         age = 0;
  16.         color = "\0";
  17.     }
  18.     Bird(int age, string color)
  19.     {
  20.         this->age = age;
  21.         this->color = color;
  22.         cout << "Вызван конструктор с параметрами класса  Bird\n";
  23.     }
  24.     Bird(Bird &a)
  25.     {
  26.         age = a.age;
  27.         color = a.color;
  28.         cout << "Вызван копирующий конструктор класса Bird\n";
  29.     }
  30. //Методы:
  31.     virtual void Fly()
  32.     {
  33.         cout << "Я лечу!\n";
  34.     }
  35. //Деструктор:
  36.     ~Bird()
  37.     {
  38.         cout << "Вызван деструктор класса Bird\n";
  39.     }
  40. };
  41. class Dove :public Bird
  42. {
  43. private:
  44. //Поля:
  45.     bool brain;
  46. public:
  47. //Конструкторы:
  48.     Dove()
  49.     {
  50.         cout << "Вызван конструктор по умолчанию класса Dove\n";
  51.     }
  52.     Dove(int age, string color, bool brain)
  53.     {
  54.         this->age = age;
  55.         this->color = color;
  56.         this->brain = brain;
  57.         cout << "Вызван конструктор с параметрами класса Dove\n";
  58.     }
  59.     Dove(Dove & q)
  60.     {
  61.         this->age = q.age;
  62.         this->color = q.color;
  63.         this->brain = q.brain;
  64.         cout << "Вызван копирующий конструктор класса Dove\n";
  65.     }
  66. //Методы:
  67.     void Fly() override
  68.     {
  69.         cout << "Я лечу кружась!\n";
  70.  
  71.     }
  72. //Деструктор:
  73.     ~Dove()
  74.     {
  75.         cout << "Вызван деструктор класса Dove\n";
  76.     }
  77.  
  78. };
  79. //Пример композиции:
  80. class Wheels
  81. {
  82. private:
  83. //Поля:
  84.     float k;
  85.     int speed1;
  86. public:
  87. //Конструкторы:
  88.     Wheels()
  89.     {
  90.         k = 0.3;
  91.         speed1 = 0;
  92.         cout << "Вызван конструктор по умолчанию класса Wheels\n";
  93.     }
  94.     Wheels(float k, int speed1)
  95.     {
  96.         this->k = k;
  97.         this->speed1 = speed1;
  98.         cout << "Вызван конструктор с параметром класса Wheels\n";
  99.     }
  100.     Wheels(Wheels& a)
  101.     {
  102.         this->k = a.k;
  103.         this->speed1 = a.speed1;
  104.         cout << "Вызван копирующий конструктор класса Wheels\n";
  105.     }
  106. //Методы:
  107.     void GetRealSpeed()
  108.     {
  109.         cout << k * speed1;
  110.     }
  111.     void PrintWheels()
  112.     {
  113.         cout << "k= " << k << endl;
  114.         cout << "speed1= " << speed1 << endl;
  115.  
  116.     }
  117. //Деструктор:
  118.     ~Wheels()
  119.     {
  120.         cout << "Вызван деструктор класса Wheels\n";
  121.     }
  122. };
  123. class Car
  124. {
  125. private:
  126. //Поля:
  127.     int speed;
  128.     Wheels *koleso;
  129.     string color;
  130.     int cost;
  131. public:
  132. //Конструкторы:
  133.     Car()
  134.     {
  135.         speed = 0;
  136.         color = "White";
  137.         koleso = new Wheels(0, 0);
  138.         cout << "Вызван конструктор по умолчанию класса Car\n";
  139.     }
  140.     Car(string color, int speed1, double k)
  141.     {
  142.         this->color = color;
  143.         koleso = new Wheels(k, speed1);
  144.         cout << "Вызван конструктор с параметром класса Car\n";
  145.     }
  146.     Car(Car&a)
  147.     {
  148.         speed = a.speed;
  149.         color = a.color;
  150.         koleso = new Wheels(*(a.koleso));
  151.         cout << "Вызван копирующий конструктор класса Car\n";
  152.     }
  153. //Методы:
  154.     void Ride()
  155.     {
  156.         cout << "Я двигаюсь со скороcтью: ";
  157.         koleso->GetRealSpeed();
  158.         cout << "\n";
  159.     }
  160.     void PrintAllParameters()
  161.     {
  162.         cout << "Speed= " << speed << "\n";
  163.         cout << "Color: " << color << "\n";
  164.         cout << "Параметры колеса:\n";
  165.         koleso->PrintWheels();
  166.     }
  167. //Деструктор:
  168.     ~Car()
  169.     {
  170.         cout << "Вызван деструктор Car\n";
  171.         delete koleso;
  172.     }
  173. };
  174. int main()
  175. {
  176.     setlocale(LC_ALL, "Russian");
  177.     Car audi("Green", 200, 0.5);
  178.     Car audi1(audi);
  179.     audi.Ride();
  180.     Bird*a = new Bird;
  181.     a->Fly();
  182.     Bird*b = new Dove;
  183.     b->Fly();
  184.     Car* c = new Car;
  185.     c->Ride();
  186.     delete a;
  187.     delete b;
  188.     delete c;
  189.     return 0;
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement