Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdio.h>
  4. #include <iomanip>
  5. using namespace std;
  6.  
  7. const int M = 5;
  8. class TMyClass
  9. {
  10. int K, N;
  11. float *p;
  12. char stroka[M];
  13. long int *massiv;
  14.  
  15. public:
  16. void input();
  17. void output();
  18. int fff();
  19. friend void frVvod(TMyClass&obj);
  20. TMyClass(int KK = 10, int NN = 10, float pp = 2.5, char simv = 'f', int mas = 5);
  21. TMyClass(const TMyClass&obj);
  22. ~TMyClass();
  23. };
  24.  
  25. TMyClass::TMyClass(int KK, int NN, float pp, char simv, int mas)
  26. {
  27. K = KK;
  28. N = NN;
  29. p = new float;
  30. *p = pp;
  31. for (int i = 0; i < M; i++) stroka[i] = simv;
  32. massiv = new long int[N];
  33. for (int i = 0; i < N; i++) massiv[i] = mas;
  34. }
  35.  
  36. TMyClass::TMyClass(const TMyClass&obj)
  37. {
  38. K = obj.K;
  39. N = obj.N;
  40. p = new float;
  41. *p = *obj.p;
  42. for (int i = 0; i < M; i++) stroka[i] = obj.stroka[i];
  43. massiv = new long int[N];
  44. for (int i = 0; i < N; i++) massiv[i] = obj.massiv[i];
  45. }
  46.  
  47. TMyClass::~TMyClass()
  48. {
  49. delete p;
  50. delete[]massiv;
  51. }
  52.  
  53. void TMyClass::input()
  54. {
  55. delete[]massiv;
  56. cout << "Введите значение переменной int K" << endl;
  57. cin >> K;
  58. cout << "Введите количествово элементов массива " << endl;
  59. cin >> N;
  60. massiv = new long int[N];
  61. for (int i = 0; i < N; i++)
  62. {
  63. cout << "Введите " << i + 1 << " элемент массива" << endl;
  64. cin >> massiv[i];
  65. }
  66. cout << "Введите значение float *р" << endl;
  67. cin >> *p;
  68. cout << "Введите 5 символов " << endl;
  69. cin >> stroka;
  70. }
  71.  
  72. void TMyClass::output()
  73. {
  74. cout << "Переменная int K = " << K << endl;
  75. cout << "Вывод массива: " << endl;
  76. for (int i = 0; i < N; i++) cout << massiv[i] << setw(4);
  77. cout << endl;
  78. cout << "*p = " << *p << endl;
  79. cout << "Статический массив stroka: ";
  80. for (int i = 0; i < M; i++) cout << stroka[i];
  81. cout << endl;
  82. }
  83.  
  84. void frVvod(TMyClass&obj)
  85. {
  86. delete[]obj.massiv;
  87. cout << "Введите значение переменной int K" << endl;
  88. cin >> obj.K;
  89. cout << "Введите кол-во элементов массива " << endl;
  90. cin >> obj.N;
  91. obj.massiv = new long int[obj.N];
  92. for (int i = 0; i < obj.N; i++)
  93. {
  94. cout << "Введите " << i + 1 << " элемент массива" << endl;
  95. cin >> obj.massiv[i];
  96. }
  97. cout << "Введите значение *р" << endl;
  98. cin >> *obj.p;
  99. cout << "Введите 5 символов " << endl;
  100. cin >> obj.stroka;
  101. }
  102.  
  103. int TMyClass::fff()
  104. {
  105. int kol = 0;
  106. for (int i = 0; i < N; i++) if (massiv[i] % 2 == 0) kol++;
  107. return kol;
  108. }
  109.  
  110. int main()
  111. {
  112. setlocale(LC_ALL, "ru");
  113. TMyClass *px = new TMyClass(100, 6, 2.65, 'w', 14);
  114. cout << "Конструктор по умолчанию для *px " << endl;
  115. px->output();
  116. TMyClass a;
  117. cout << "\nВвод a через член класса: " << endl;
  118. a.input();
  119. cout << "\nВывод a:" << endl;
  120. a.output();
  121. TMyClass *py = new TMyClass;
  122. cout << "\nВвод *py через дружественную функцию: " << endl;
  123. frVvod(*py);
  124. cout << "\nВывод *py:" << endl;;
  125. py->output();
  126. cout << "\nКонструктор копирования b(a): " << endl;
  127. TMyClass b(a);
  128. b.output();
  129. cout << "\n| Выполнение функции fff:" << endl;
  130. cout << "- Количество чётных элементов в динамическом массиве объекта класса *px: " << px->fff() << endl;
  131. cout << "- Количество чётных элементов в динамическом массиве объекта класса a: " << a.fff() << endl;
  132. cout << "- Количество чётных элементов в динамическом массиве объекта класса *py: " << py->fff() << endl;
  133. cout << "- Количество чётных элементов в динамическом массиве объекта класса b: " << b.fff() << endl;
  134. delete px;
  135. delete py;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement