Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <stdio.h>
- #include <iomanip>
- using namespace std;
- const int M = 5;
- class TMyClass
- {
- int K, N;
- float *p;
- char stroka[M];
- long int *massiv;
- public:
- void input();
- void output();
- int fff();
- friend void frVvod(TMyClass&obj);
- TMyClass(int KK = 10, int NN = 10, float pp = 2.5, char simv = 'f', int mas = 5);
- TMyClass(const TMyClass&obj);
- ~TMyClass();
- };
- TMyClass::TMyClass(int KK, int NN, float pp, char simv, int mas)
- {
- K = KK;
- N = NN;
- p = new float;
- *p = pp;
- for (int i = 0; i < M; i++) stroka[i] = simv;
- massiv = new long int[N];
- for (int i = 0; i < N; i++) massiv[i] = mas;
- }
- TMyClass::TMyClass(const TMyClass&obj)
- {
- K = obj.K;
- N = obj.N;
- p = new float;
- *p = *obj.p;
- for (int i = 0; i < M; i++) stroka[i] = obj.stroka[i];
- massiv = new long int[N];
- for (int i = 0; i < N; i++) massiv[i] = obj.massiv[i];
- }
- TMyClass::~TMyClass()
- {
- delete p;
- delete[]massiv;
- }
- void TMyClass::input()
- {
- delete[]massiv;
- cout << "Введите значение переменной int K" << endl;
- cin >> K;
- cout << "Введите количествово элементов массива " << endl;
- cin >> N;
- massiv = new long int[N];
- for (int i = 0; i < N; i++)
- {
- cout << "Введите " << i + 1 << " элемент массива" << endl;
- cin >> massiv[i];
- }
- cout << "Введите значение float *р" << endl;
- cin >> *p;
- cout << "Введите 5 символов " << endl;
- cin >> stroka;
- }
- void TMyClass::output()
- {
- cout << "Переменная int K = " << K << endl;
- cout << "Вывод массива: " << endl;
- for (int i = 0; i < N; i++) cout << massiv[i] << setw(4);
- cout << endl;
- cout << "*p = " << *p << endl;
- cout << "Статический массив stroka: ";
- for (int i = 0; i < M; i++) cout << stroka[i];
- cout << endl;
- }
- void frVvod(TMyClass&obj)
- {
- delete[]obj.massiv;
- cout << "Введите значение переменной int K" << endl;
- cin >> obj.K;
- cout << "Введите кол-во элементов массива " << endl;
- cin >> obj.N;
- obj.massiv = new long int[obj.N];
- for (int i = 0; i < obj.N; i++)
- {
- cout << "Введите " << i + 1 << " элемент массива" << endl;
- cin >> obj.massiv[i];
- }
- cout << "Введите значение *р" << endl;
- cin >> *obj.p;
- cout << "Введите 5 символов " << endl;
- cin >> obj.stroka;
- }
- int TMyClass::fff()
- {
- int kol = 0;
- for (int i = 0; i < N; i++) if (massiv[i] % 2 == 0) kol++;
- return kol;
- }
- int main()
- {
- setlocale(LC_ALL, "ru");
- TMyClass *px = new TMyClass(100, 6, 2.65, 'w', 14);
- cout << "Конструктор по умолчанию для *px " << endl;
- px->output();
- TMyClass a;
- cout << "\nВвод a через член класса: " << endl;
- a.input();
- cout << "\nВывод a:" << endl;
- a.output();
- TMyClass *py = new TMyClass;
- cout << "\nВвод *py через дружественную функцию: " << endl;
- frVvod(*py);
- cout << "\nВывод *py:" << endl;;
- py->output();
- cout << "\nКонструктор копирования b(a): " << endl;
- TMyClass b(a);
- b.output();
- cout << "\n| Выполнение функции fff:" << endl;
- cout << "- Количество чётных элементов в динамическом массиве объекта класса *px: " << px->fff() << endl;
- cout << "- Количество чётных элементов в динамическом массиве объекта класса a: " << a.fff() << endl;
- cout << "- Количество чётных элементов в динамическом массиве объекта класса *py: " << py->fff() << endl;
- cout << "- Количество чётных элементов в динамическом массиве объекта класса b: " << b.fff() << endl;
- delete px;
- delete py;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement