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

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

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

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

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

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

Детектировать, является ли контейнером set или является multiset - C++
здравствуйте, вот есть детектирование является ли контейнер map или multimap: template&lt; typename... &gt; using void_t = void; ...

Шаблон класса set - C++
Подскажите, пожалуйста, почему код не компилируется. Ругается на 8-ю строчку #pragma once #include &lt;iostream&gt; #include &lt;deque&gt; ...

Шаблон класса set (множество) - C++
Требуется создать шаблон класса множество... а я без божно туплю, у самого не получилось... нашел на вашем форуме следующий код... исправил...

как узнать,является данный объект класса А1 наследником класса А2 - C++
Всем привет)есть классы S, A1, A2, B1, B2. Иерархия наследования следующая S - Является родителем для всех классов и он имеет...

Создать шаблон класса Set (множество) - C++
Нужно реализовать: Класс •множество set. Дополнительно перегрузить следующие операции: + •добавить элемент в множество (типа item...

Использование в качестве поля класса указатель на объект другого класса - C++
Ошибка в названии - &quot;указателЯ&quot; Вот, пытаюсь освоить ООП (пока только учусь): создаю класс person (человек) и car (модель машины). ...

8
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
10.11.2013, 13:34 #2
Как и любую другую переменную/контейнер. В чём проблема?
0
Kuzia domovenok
2130 / 1959 / 197
Регистрация: 25.03.2012
Сообщений: 6,836
Записей в блоге: 1
10.11.2013, 13:40 #3
В чем проблема?

return SomethingSet
1
reckless91
30 / 30 / 1
Регистрация: 01.11.2013
Сообщений: 63
10.11.2013, 13:51 #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;
    }
};
1
Tit_Vlad
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 28
10.11.2013, 14:54  [ТС] #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
подскажите что это такое?
0
Kuzia domovenok
2130 / 1959 / 197
Регистрация: 25.03.2012
Сообщений: 6,836
Записей в блоге: 1
10.11.2013, 15:00 #6
в каком файле находится это?
C++
1
2
3
4
5
template <class T> void AutoShop::add( set<T> _setSomething)
{
T obg;
__setSomething.insert(obg);
}
0
Tit_Vlad
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 28
10.11.2013, 19:57  [ТС] #7
Это находится в autoShop.cpp
В AutoShop.h в public части класса есть объявление template <class T> void add (set<T> _setSomething);
0
Kuzia domovenok
2130 / 1959 / 197
Регистрация: 25.03.2012
Сообщений: 6,836
Записей в блоге: 1
10.11.2013, 20:10 #8
Цитата Сообщение от Tit_Vlad Посмотреть сообщение
Это находится в autoShop.cpp
а должен находиться там же, где и его объявление. В AutoShop.h!
Это же шаблон, а не просто функция!
1
Tit_Vlad
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 28
10.11.2013, 21:34  [ТС] #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;
        }
0
10.11.2013, 21:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 21:34
Привет! Вот еще темы с ответами:

Организовать хранение данных с применением контейнерного класса set - C++
День добрый! Информационная система содержит сведения об отправлении поездов дальнего следования. Для каждого поезда указывается:...

Друзья, подскажите, говорят, что можно поля класса инициализировать в момент объявления класса. Как это сделать? - C++
Скажу сразу, а то сейчас начнется, что я прекрасно понимаю, что поля класса при объявлении инициализировать нельзя. Можно конструктором при...

Реализовать шаблон класса set, который имитировал бы работу с множествами - C++
Здравствуйте! Кто-нибуть знает, как это делать? Если да подскажите пожалуйста! Реализовать шаблон класса set, который имитировал бы...

Записать условие, которое является истинным, когда: - C++ - C++
а) каждое из чисел X и Y нечетное; б) только одно из чисел X и Y меньше 20; в) хотя бы одно из чисел X и Y =0; г) каждое из чисел...


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

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

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