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

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

Войти
Регистрация
Восстановить пароль
 
Tit_Vlad
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 28
#1

Извлечение из класса поля которое является множеством (set) - C++

10.11.2013, 13:16. Просмотров 326. Ответов 8
Метки нет (Все метки)

Здравствуйте!
У меня есть класс одно из полей которого множество (set<Something> SomethingSet). Я хочу передать это множество в функцию и для этого нужно создать гетер. Может кто подсказать как создать функцию возвращающую это множество из класса?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 13:16     Извлечение из класса поля которое является множеством (set)
Посмотрите здесь:

C++ Найти хотя бы одно число, которое является палиндромом
C++ Шаблон класса set (множество)
Найти ближайшее справа число, которое является квадратом натурального числа C++
C++ Записать условие, которое является истинным, когда только одно из чисел А и В четное
C++ На базе контейнера vector из стандартной библиотеки С++ создайте шаблон класса Set,
Std::set, как добавить собственную проверку уникальности для класса? C++
Записать условие, которое является истинной, когда только одно из чисел А, В и С меньше 50 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
10.11.2013, 13:34     Извлечение из класса поля которое является множеством (set) #2
Как и любую другую переменную/контейнер. В чём проблема?
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
10.11.2013, 13:40     Извлечение из класса поля которое является множеством (set) #3
В чем проблема?

return SomethingSet
reckless91
30 / 30 / 1
Регистрация: 01.11.2013
Сообщений: 63
10.11.2013, 13:51     Извлечение из класса поля которое является множеством (set) #4
Цитата Сообщение от Tit_Vlad Посмотреть сообщение
Здравствуйте!
У меня есть класс одно из полей которого множество (set<Something> SomethingSet). Я хочу передать это множество в функцию и для этого нужно создать гетер. Может кто подсказать как создать функцию возвращающую это множество из класса?
Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class SomeSet
{
private:
    set<int> SET;
    ...
public:
    ...
    set<int> func_Get()
    {
        return SET;
    }
};
Tit_Vlad
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 28
10.11.2013, 14:54  [ТС]     Извлечение из класса поля которое является множеством (set) #5
Да спасибо, заработало, но теперь выскочила другая ошибка...
я передаю это множество как параметр в шаблонную функцию
au1.add<Manager>(au1.getManagerSet());
вот реализация функции
template <class T> void AutoShop::add( set<T> _setSomething)
{
T obg;
__setSomething.insert(obg);
}
а вот ошибка
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall AutoShop::add<class Manager>(class std::set<class Manager,struct std::less<class Manager>,class std::allocator<class Manager> >)" (??$add@VManager@@@AutoShop@@QAEXV?$set@VManager@@U?$less@VManager@@@std@@V?$allocator@VManager@@@3@@std@@@Z) referenced in function _main
подскажите что это такое?
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
10.11.2013, 15:00     Извлечение из класса поля которое является множеством (set) #6
в каком файле находится это?
C++
1
2
3
4
5
template <class T> void AutoShop::add( set<T> _setSomething)
{
T obg;
__setSomething.insert(obg);
}
Tit_Vlad
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 28
10.11.2013, 19:57  [ТС]     Извлечение из класса поля которое является множеством (set) #7
Это находится в autoShop.cpp
В AutoShop.h в public части класса есть объявление template <class T> void add (set<T> _setSomething);
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
10.11.2013, 20:10     Извлечение из класса поля которое является множеством (set) #8
Цитата Сообщение от Tit_Vlad Посмотреть сообщение
Это находится в autoShop.cpp
а должен находиться там же, где и его объявление. В AutoShop.h!
Это же шаблон, а не просто функция!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 21:34     Извлечение из класса поля которое является множеством (set)
Еще ссылки по теме:

C++ Создать шаблон класса Set (множество)
C++ Реализовать шаблон класса set, который имитировал бы работу с множествами
Записать условие, которое является истинным, когда целое А не кратно трем и оканчивается нулем C++
C++ Error C2039: Insert: не является членом "std::set<_Kty>"
C++ Детектировать, является ли контейнером set или является multiset

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

Или воспользуйтесь поиском по форуму:
Tit_Vlad
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 28
10.11.2013, 21:34  [ТС]     Извлечение из класса поля которое является множеством (set) #9
Точно спасибо!)

Добавлено через 48 минут
Еще вопрос.
Та функция add не добавляет объект к множеству.
Я решил что если он создается в функции,то он разрушается после выхода из нее. Поэтому я создавал его выше и передавал в функцию как параметр, как ссылку, указатель, все равно не добавляет!
вот код:
C++
1
2
3
4
template <class T> void add( set<T> _setSomething, T* _obg)
    {
        _setSomething.insert(*_obg);
    }
вот main.cpp

C++
1
2
3
4
5
6
7
8
switch (mapAction[act])
        {
        case manager:
        {
            Manager m;
            au1.add<Manager>(au1.getManagerSet(), &m);
            break;
        }
Yandex
Объявления
10.11.2013, 21:34     Извлечение из класса поля которое является множеством (set)
Ответ Создать тему
Опции темы

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