SHARE
TWEET

Untitled

a guest Dec 6th, 2019 102 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top