0 / 0 / 0
Регистрация: 09.02.2020
Сообщений: 33
1

Перегрузка операторов

21.12.2020, 18:21. Показов 504. Ответов 1
Метки с++ (Все метки)

Определить класс "множество" с элементами типа int (одномерный массив, количество элементов вводится с клавиатуры). Дополнительно перегрузить следующие операции:

“!=” - проверка множеств на неравенство. Два множества не равны, если они не совпадают ни по количеству элементов, ни по значениям элементов;

“++” - добавить элемент в множество (в конец массива).

“*” - произведение множеств. Произведением двух множеств будем считать массив, полученный поэлементным умножением чисел, входящих в массивы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <ctime>
#include <cstdlib>  //rand
 
using namespace std;
 
 
class Massiv  //Наш класс
{
public:
    void Create(int*& Arr, const int N);             //Метод выделения памяти под массив
    void Delete(int* Arr);                         //Метод освобождения памяти
    void Fill(int* Arr, const int N);               //Метод заполнения массива значениями
    void Show(int* Arr, const int N);               //Метод отображения массива на экране
};
 
void Massiv::Create(int*& Arr, const int N)          //Вне класса описываем метод выделения памяти под массив
{
    Arr = new int[N];
}
 
void Massiv::Delete(int* Arr)                      //Вне класса описываем метод освобождения памяти
{
    delete[]Arr;                                   //очищаем память от массива
    Arr = NULL;                                       //указываем, что теперь массив должен находится в новом зарезервированном месте и указывает вникуда
}
 
 
void Massiv::Fill(int* Arr, const int N)             //Вне класса определяем функцию заполнения массива
{
    for (int i = 0; i < N; i++) Arr[i] = rand() % N + 1;        //я решил заполнять случайными значениями
}
 
void Massiv::Show(int* Arr, const int N)                //Вне класса определяем функцию отображения массива на экране
{
    for (int i = 0; i < N; i++) cout << Arr[i] << "  ";
}
/*
void operator++ (Arr Arr1)
{
    for (int i = 0; i < Arr.Elements.Length; i++)
    {
        Arr.Elements[i]++;
    }
    return Arr1;
}
*/
int main()
{
    setlocale(0, "RUSSIAN");
    srand(time(NULL));          //Включаю генератор псевдослучайных значений
 
    int* Ptr = NULL;
    Massiv Massiv;            //объект массив типа массив (справа объект - слева тип)
    int N = 0;                  //количество элементов для массива
 
    cout << "Введите размер массива:";
    cin >> N;
    //N = rand() % 20 + 1;             //генерирую случайные числа, ноль не генерируем
    Massiv.Create(Ptr, N);      //выделяю память для N элементов
    Massiv.Fill(Ptr, N);        //Записываю в каждый элемент значение
    Massiv.Show(Ptr, N);        //Показываю массив на экране
    Massiv.Delete(Ptr);        //Освобождаю память
 
    cout << "\n\n";
 
    cin.get();
}
Не понимаю как совершить перегрузку операторов на этот массив
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2020, 18:21
Ответы с готовыми решениями:

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в...

Перегрузка операторов
Вот такое вот задание: Создать класс А с 4 полями, отражающие показатели объекта. Перегрузить...

Перегрузка операторов
Не могу понять почему не работают перегрузки операторов ++ и -- Вот код: #include &lt;iostream&gt;...

Перегрузка операторов
Доброго времени суток Код выдает ошибку Не могу понять как исправить cannot convert...

1
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,745
21.12.2020, 18:23 2
Цитата Сообщение от bjiake Посмотреть сообщение
“++” - добавить элемент в множество (в конец массива).
Использование ++ для этой функции не логично.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2020, 18:23
Помогаю со студенческими работами здесь

Перегрузка операторов
ifstream ifile(&quot;open.txt&quot;); if(! ifile) { } Как реализовать класс, что бы можно было...

Перегрузка операторов
Приветствую. Вот как выглядит задание: АТД − множество с элементами типа char. Дополнительно...

[c++] Перегрузка операторов
Не работает. #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #pragma argsused struct FazzyNumber {...

[C++] Перегрузка операторов
Помогите пожалуйста перегрузить операторы в матрице: +=, i++, != и Перегрузил *= но не...

перегрузка операторов
Всем привет. Дошел до темы перегрузки операторов и возникло два вопроса. Первый: Чем отличается...

Перегрузка операторов
Создать класс А с 4 полями, отражающие показатели объекта. Перегрузить операции. Метод класса:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru