Форум программистов, компьютерный форум CyberForum.ru

Перегрузка оператора ~ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Есть идеи? http://www.cyberforum.ru/cpp-beginners/thread237801.html
Шеф-повар столовой решила устроить День Уважения к Повару. Для этого она приготовила N необычайно вкусных котлет и втайне постановила, что первый пожаловавший отведать поварское кушанье должен получить наибольшее количество вкусных котлет, а каждый последующий — строго меньше, чем предыдущий (повару очень не нравилось, когда к приготовленному обеду опаздывали и горячее остывало). Конечно,...
C++ Почему не работает strlen()??? Код программы: #include<string> #include<iostream> using namespace std; int main(){ string s; getline(cin, s, '\n'); int d=0; d=strlen(s); http://www.cyberforum.ru/cpp-beginners/thread237794.html
Найти наибольший элемент массива А, меньший произведения элементов с нечётными номерами C++
найти наибольший элемент массива А, меньший произведения элементов с нечётными номерами Называйте темы осмысленно! Название темы должно максимально полно отражать суть задачи
C++ Динамическое выделение памяти под объект
Здравствуйте, меня интересует несколько вопросов по поводу конструкции new. Есть такой код: struct element { std::string value; int pos; }; element* list;
C++ Программу для поиска сочетаний в С. http://www.cyberforum.ru/cpp-beginners/thread237765.html
Вот программа на С, должна выдавать сочетания из m по n, но почему-то получаются не все варианты. Как её можно исправить? Очень хотелось бы получить ответ до завтра. Писал не я, сразу предупреждаю. Заранее спасибо. #include <stdio.h> #include <stdlib.h> void cnk(int* array, int* for_print, int arr_index, int print_index, int n, int m) { if (m > 0) { int k;
C++ Строки символов Здравствуйте. Задача такая: Язык С++ Дан двумерный массив из символов(10 строк по 80 символов). Нужно из каждой строки удалить 1 элемент, и вывести полученный текст на экран. Очень срочно,помогите пожалуйста. подробнее

Показать сообщение отдельно
Anastasiya_1692
 Аватар для Anastasiya_1692
1 / 1 / 1
Регистрация: 30.12.2009
Сообщений: 53
03.02.2011, 18:05     Перегрузка оператора ~
Доброго времени суток! Помогите пожалуйста с решением задачи.

Описать класс множество целых чисел. Перегрузить следующую операцию: ~ объединение множеств.
(т.е. mnozh3=mnozh1~mnozh2 означает, что множество mnozh3 состоит из элементов множеств mnozh1 и mnozh2).

Под множеством понимается одномерный массив не содержащий повторяющихся элементов. Например, [1 2 3 ] - множество, [1 2 2 3] - не является множеством, т.к. содержит две 2.

У меня получилось сформировать множество, а вот с объединением проблема...
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
#include <iostream.h>
#include <vcl.h>
#include <conio.h>
 
class set{
    public:
        set():n(0), mas(0){
            cout<<"\set constructed (contains 0 elements)\n\n";
        }
        ~set(){
            delete[] mas;
            cout<<"\set destructed\n";
        }
 
        int size(){
         return n;
        }
 
        void print (void){
          cout<<"\nsize of set= "<<size()<<"\n";
          for(int i=0;i<size();i++)
          cout<<mas[i]<<"  ";
        }
 
        set& operator+(int new_el){
            for(int i=0;i<n;i++)
                if(mas[i]==new_el){
                 cout<<"not added: "<<new_el<<"\n\n";
                 return *this;
                }
            int* temp=new int[n+1];
            for(int i=0;i<n;i++) temp[i]=mas[i];
            temp[n]=new_el;
            ++n;
            delete[] mas;
            mas=temp;
            cout<<"added: "<<new_el<<"\n\n";
            return *this;
        }
 
    private:
        int n;
        int *mas;
};
 
int main(){
int i,k,el;
    set a;
    cout<<"Enter number of added elements: ";
    cin>>k;
 
    for (i=0; i<k; i++){
     cin>>el;
     a+el;
    }
 
    a.print();
        getch();
}
Большое спасибо всем за помощь!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru