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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.86
Фенрир
42 / 38 / 2
Регистрация: 05.01.2009
Сообщений: 394
#1

Класс множество - C++

09.01.2009, 11:21. Просмотров 3545. Ответов 1
Метки нет (Все метки)

Нужно написать класс множество с конструкторами, деструкторами, операторами.

Так вот возник вопрос...как понимать тип данных множество??
Это обычный массив в котором даннеы не могут повторяться, распологаются упорядоченно (обязательно или нет?),.....??

Добавлено через 5 часов 10 минут 26 секунд
template <class T>
PHP
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
class set {
    public:
//-------------------
friend inline set operator + (  const set<T> &x, const set<T> &y); // оператор объединения
inline set& operator = (const set<T>& x) ; // оператор присваивания
private:
//---------
};
 
  template <class T>
set<T>&   set<T> :: operator = (const set& x)
{
   if (this!=&x) // если не сам себе присваивается
    {  delete []pset;
       create(x);
     }
 return *this; /* возвращаем ссылку на текущий объект для дальнейший присваиваний */
}
 
 
    template <class T>
 inline set<T> operator + ( const set<T>& x, const set<T>& y) // оператор объединения
{   
//-------------
}
 
int main(int argc, char* argv[])
{  set<int> a(10, 3);
   set<int> b(7, 0);
   set<int> d(a);
   set <int> c;
   b.insert(0);
   b.insert(7);
   b.insert(6);
   c=a+b;
   printf("%d\n",b[0]);
   printf("%d\n",b[1]);
   printf("%d\n",b[2]);
   printf("%d\n",b[3]);
   printf("%d\n",b[4]);
  
 
    getch();
    return 0;
}
Не компилируется..в cpp пишет:
"Undefined symbol 'operator+ (const set<int> &, const set<int> &)' " Подскажите плизз..где у меня ошибка при объявлении оператора.

Добавлено через 4 минуты 0 секунд
извиняюсь

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
template <class T>
class set {
    public:
inline set& operator = (const set<T>& x) ; // оператор присваивания
    friend inline set operator + (  const set<T> &x, const set<T> &y); // оператор объединения
};
 
    template <class T>
 inline set<T> operator + ( const set<T>& x, const set<T>& y) // оператор объединения
{
//----
}
В cpp пишет "Undefined operator + 'const set<int> &, const set<int> &"
Где я ошибся при объявлении подскажите плизз!!

Добавлено через 40 минут 14 секунд
разобрался спасибо...

Добавлено через 12 часов 56 минут 15 секунд
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
template <class T>
class set {
public:
template <class T> friend
    inline set<T> operator + ( const set<T> x , const set<T> y); 
 
    template <class T> friend
    inline ostream& operator << ( ostream& os , const set<T> x); 
 
 
};
 
 template <class T1>
inline ostream& operator << ( ostream& os , const set<T1> x)
{  for (int i = 0; i < x.curr_size; i++)
     os<<x.pset[0]<<"\t";
   return os;
}
 
template <class T1>
  set<T> operator + ( const set<T1> x, const set<T1> y) // оператор объединения
{   
 
//----------------  
      
}
В студии говорят компилится
а в борланде ругается постоянно
[BCC32 Error] File13.cpp(13): E2335 Overloaded 'operator set<int> + <int>(const set<int>,const set<int>)' ambiguous in this context
[BCC32 Error] File13.cpp(14): E2335 Overloaded 'operator ostream & << <int>(ostream &,const set<int>)' ambiguous in this context

подскажите плизз..многие варианты перепробывал..не входит..вопрос весьма тонкий
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2009, 11:21     Класс множество
Посмотрите здесь:

Создать класс описывающий множество C++
C++ Класс Множество
C++ Кто-нибудь реализовывал класс множество?
Описать класс множество C++
C++ Класс, реализующий множество
C++ Класс «множество целых чисел»
Класс – множество C++
C++ Нужно описать класс «множество»
Класс множество, странно работает код C++
C++ Реализовать класс множество
C++ Класс множество строк
Описать класс “множество” C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
10.01.2009, 11:43     Класс множество #2
Цитата Сообщение от Фенрир Посмотреть сообщение
Нужно написать класс множество с конструкторами, деструкторами, операторами.

Так вот возник вопрос...как понимать тип данных множество??
Это обычный массив в котором даннеы не могут повторяться, распологаются упорядоченно (обязательно или нет?),.....??
С математической точки зрения множество - это совокупность элементов, никак не упорядоченная и количество вхождений одного и того же элемента не учитывается. Вам же никто не мешает создать множество, которое будет упорядочено и учитывать количество элементов - короче, как говорится, как фантазия пожелает.. Реализация же будет зависить от выбранного вами варианта.

По поводу кода:
1. Данные класса где ? Что у вас в private ?
2. Если уж вы пишете на С++, то почему бы вам для вывода не использовать потоки вместо c-style printf ? А то как-то уродски выглядит.
Yandex
Объявления
10.01.2009, 11:43     Класс множество
Ответ Создать тему
Опции темы

Текущее время: 17:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru