Advertisement
Gamerkin

4_1_2

Apr 5th, 2023
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.40 KB | None | 0 0
  1. //Описать четыре класса которые последовательно наследуют друг друга, последовательными номерами классов 1, 2, 3, 4.
  2. //
  3. //Реализовать программу, в которой использовать единственный указатель на объект базового класса(номер класса 1).
  4. //
  5. //Наследственность реализовать так, что можно было вызвать методы, принадлежащие объекту конкретного класса, только через объект данного класса.
  6. //
  7. //В закрытом разделе каждого класса определены два свойства : строкового типа для наименования объекта и целого типа для значения определенного целочисленного выражения.
  8. //
  9. //Описание каждого класса содержит один параметризированный конструктор с строковым и целочисленным параметром.
  10. //
  11. //В реализации каждого конструктора объекта определяются значения закрытых свойств :
  12. //
  13. //Наименование объекта по шаблону : «значение строкового параметра»_«номер класса»;
  14. //Целочисленного свойства значением выражения возведения в степень номера класса целочисленного значения параметра конструктора.
  15. //Еще в описании каждого класса определен метод с одинаковым наименованием для всех классов, реализующий вывод значений закрытых свойств класса.
  16. //
  17. //В основной функции реализовать алгоритм :
  18. //
  19. //Вводиться идентификатор и натуральное число от 2 до 10.
  20. //Создать объект класса 4, используя параметризированный конструктор, которому в качестве аргументов передаются введенный идентификатор и натуральное число.
  21. //Построчно, для всех объектов согласно наследственности, от объекта базового(класс 1) до производного объекта(класса 4) вывести наименование объекта класса и значение целочисленного свойства.
  22. #include <string>
  23. #include <iostream>
  24.  
  25. using namespace std;
  26. //Класс 1:
  27.  
  28. class BaseClass
  29. {
  30. private:
  31.     string name;
  32.     int value;
  33.  
  34. public:
  35.     BaseClass(string name, int value)
  36.     {
  37.         this->name = name + "_1";
  38.         this->value = value;
  39.     }
  40.  
  41.     void PrintValues()
  42.     {
  43.         cout << "Name: " << name << endl;
  44.         cout << "Value: " << value << endl;
  45.     }
  46. };
  47.  
  48. //Класс 2:
  49.  
  50. class DerivedClass1 : public BaseClass
  51. {
  52. private:
  53.     string name;
  54.     int value;
  55.  
  56. public:
  57.     DerivedClass1(string name, int value) : BaseClass(name, value)
  58.     {
  59.         this->value = pow(value, 2);
  60.     }
  61.  
  62.     void PrintValues()
  63.     {
  64.         cout << "Name: " << name << endl;
  65.         cout << "Value: " << value << endl;
  66.     }
  67. };
  68.  
  69. //Класс 3:
  70.  
  71. class DerivedClass2 : public DerivedClass1
  72. {
  73. private:
  74.     string name;
  75.     int value;
  76.  
  77. public:
  78.     DerivedClass2(string name, int value) : DerivedClass1(name, value)
  79.     {
  80.         this->value = pow(value, 3);
  81.     }
  82.  
  83.     void PrintValues()
  84.     {
  85.         cout << "Name: " << name << endl;
  86.         cout << "Value: " << value << endl;
  87.     }
  88. };
  89.  
  90. //Класс 4:
  91.  
  92. class DerivedClass3 : public DerivedClass2
  93. {
  94. private:
  95.     string name;
  96.     int value;
  97.  
  98. public:
  99.     DerivedClass3(string name, int value) : DerivedClass2(name, value)
  100.     {
  101.         this->value = pow(value, 4);
  102.     }
  103.  
  104.     void PrintValues()
  105.     {
  106.         cout << "Name: " << name << endl;
  107.         cout << "Value: " << value << endl;
  108.     }
  109. };
  110.  
  111. int main()
  112. {
  113.     string name;
  114.     int value;
  115.  
  116.     cout << "Enter name and value: ";
  117.     cin >> name >> value;
  118.  
  119.     BaseClass* base;
  120.     base = new DerivedClass3(name, value);
  121.  
  122.     base->PrintValues();
  123.  
  124.     delete base;
  125.  
  126.     system("pause");
  127.     return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement