С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
#1

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

29.10.2013, 20:12. Просмотров 391. Ответов 2
Метки нет (Все метки)

Вот задание
Кликните здесь для просмотра всего текста
b) Создать класс Set – множество целых чисел, используя динамическую память. Определить операторы работы с множествами: "+" – объединение, "*" – пересечение, "-" вычитание, как дружественные функции, а "+=" – включение нового элемента в множество, "==" – сравнения на равенство, и др. как методы класса. Определить операторы "<<" и ">>". Также определить функцию определения принадлежности элемента множеству.

вот мой класс Set
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Set
{
      int *set;//указатель на множество
      int tmp_quentity;//текущая размерность
      public:
      Set(int);
      ~Set();
      int Get_element(int pos);
      int Get_quentity();
      void Set_element(int num,int pos);
      void operator+=(int num);
};

на всякий случай конструктор(делаю я через *** но по другому не пришло в голову как сделать)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
Set::Set(int n):tmp_quentity(n)
{
    set=new int[100]; 
    for(int i=0;i<tmp_quentity;i++)
    set[i]=0;        
}

тоесть я выделяю память сразу на 100 элементов но храню в tmp_quentity сколько из них занято
вот собственно проблема с перегрузкой +=
вот и она
C++
1
2
3
4
5
void Set::operator+=(int num)
{
     tmp_quentity++;
     set[tmp_quentity]=num;
}
то есть если я прибавляю элемент к множетву я увеличиваю размер множества и на "новое" мето ставлю элемент;
но вот незадача я в мэйне пишу S1+=76;
но выводя множество я получаю в конце не 76 а случайный мусор из памяти.почему?
п.с есть варианты более красивой реализации множества? мне самой не нравится то что я выделяю заведомо 100 элементов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2013, 20:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операторов (C++):

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

Перегрузка операторов С++ - C++
Здравствуйте, недавно начал изучать С++, до этого старался решать проблемы самостоятельно, но сейчас чето я туплю/не понимаю. Простоя...

Перегрузка операторов - C++
Добрый день! Интересует перегрузка операторов(--, !=, &lt;&lt;). Мне когда-то преподаватель объяснял через TPoint , но к сожалению забыл....

[c++] Перегрузка операторов - C++
Для заданных A = (A – a1, A, A + a2) и B = (B – b1, B, B + b2) Найти сумму A + B = (A + B – a1 – b1, A + B, A + B + a2 + b2); ...

Перегрузка операторов - C++
Столкнулся с проблемой при написании лабораторной по перегрузке операторов. Задание таково: описать класс, содержащий координаты отрезка,...

Перегрузка операторов - C++
Создать следующие классы. В каждом классе должны быть наборы конструкторов (в том числе по умолчанию и копирования), деструктор. Для...

2
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
29.10.2013, 20:26 #2
C++
1
2
3
4
5
void Set::operator+=(int num)
{
     tmp_quentity++;
     set[tmp_quentity-1]=num;
}
1
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95
04.11.2013, 08:48  [ТС] #3
Цитата Сообщение от scenotaph Посмотреть сообщение
C++
1
2
3
4
5
void Set::operator+=(int num)
{
     tmp_quentity++;
     set[tmp_quentity-1]=num;
}
ешкин кот,хотела спросить почему, но пока начала писать поняла и стало стыдновато)индексация же с 0 начинается

Добавлено через 1 минуту
Спасибо) а то пишешь пишешь,и как наделаешь таких глупых ошибок и втыкакшь пару часов не понимая откуда они)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 08:48
Привет! Вот еще темы с ответами:

Перегрузка операторов (--, +=, -=, == ) - C++
Пожалуйста помогите изменить программу добавив перегрузку операторов (--, +=, -=, == ) MAIN.CPP #include &lt;iostream&gt; #include...

Перегрузка операторов - C++
Создайте класс Fraction (обыкновенная дробь), в котором реализовать перегрузку: оператора суммирования дробей, оператора суммирования дроби...

Перегрузка операторов - C++
Всем привет. Предположим, что нужно перегрузить оператор вывода &lt;&lt; для какого-то класса, определенного мной. Этот оператор должен выводить...

Перегрузка операторов - C++
Не могу понять в чем проблема. #include &lt;iostream&gt; using namespace std ; class Oper { private: string name ;


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.