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

Доступ к полям класса - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
RiG1
 Аватар для RiG1
28 / 28 / 0
Регистрация: 12.03.2011
Сообщений: 466
18.12.2011, 20:24     Доступ к полям класса #1
Имеет список list с объектами класса zapis
C++
1
list<zapis> list
как мне получить значение поля класса, например поле Number
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
18.12.2011, 20:32     Доступ к полям класса #2
Так как вы используете список, то вам придется итератором дойти до нужного элемента, а уже потом из этого итератора обращаться к некоторому полю класса (если конечно это паблик поле) iterator->Number.
Как-то так
RiG1
 Аватар для RiG1
28 / 28 / 0
Регистрация: 12.03.2011
Сообщений: 466
18.12.2011, 20:41  [ТС]     Доступ к полям класса #3
хм, мне необходимо отсортировать этот список методом пузырьковой сортировки, следовательно мне нужен i-тый и i+1 -тый элементы списка
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.12.2011, 20:43     Доступ к полям класса #4
Используйте итераторы. Больше никак.
RiG1
 Аватар для RiG1
28 / 28 / 0
Регистрация: 12.03.2011
Сообщений: 466
18.12.2011, 21:40  [ТС]     Доступ к полям класса #5
А можете ли вы помочт преобразовать данный код сортировки на c# в код с++ с использованием итераторов
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void InsertionSort(list<Abonents> list)
        {
            for (int i = 1; i < list.Count; i++)
            {
                int j;
                int buf = list[i].Number;
                for (j = i - 1; j >= 0; j--)
                {
                    if (list[j].Number < buf)
                        break;
                    list[j + 1].Number = list[j].Number;
                }
                list[j + 1].Number = buf;
            }
        }
Добавлено через 21 минуту
ап ап ап

Добавлено через 23 минуты
ап ап
Петррр
 Аватар для Петррр
5916 / 3353 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
18.12.2011, 21:54     Доступ к полям класса #6
RiG1, а так не проще:
C++
1
2
list<int> lst;
lst.sort();
RiG1
 Аватар для RiG1
28 / 28 / 0
Регистрация: 12.03.2011
Сообщений: 466
18.12.2011, 22:36  [ТС]     Доступ к полям класса #7
у меня list<Abonents> list мне надо отсортировать по определенному полю класса
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.12.2011, 22:43     Доступ к полям класса #8
Цитата Сообщение от RiG1 Посмотреть сообщение
у меня list<Abonents> list мне надо отсортировать по определенному полю класса
Перегрузите операцию сравнения < для класса Abonents и тогда вы сможете использовать стандартный метод сортировки sort класса list.
В перегрузке операции < сравнивайте что вам угодно.
RiG1
 Аватар для RiG1
28 / 28 / 0
Регистрация: 12.03.2011
Сообщений: 466
18.12.2011, 22:45  [ТС]     Доступ к полям класса #9
Chelioss, а можно пример. я честно говоря не знаю что это такое
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.12.2011, 22:57     Доступ к полям класса #10
C++
1
2
3
4
bool operator <( const Abonents &right ) const
{
   return поле < right.поле;
}
RiG1
 Аватар для RiG1
28 / 28 / 0
Регистрация: 12.03.2011
Сообщений: 466
18.12.2011, 23:12  [ТС]     Доступ к полям класса #11
и как потом этот оператор использовать?
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.12.2011, 23:17     Доступ к полям класса #12
Метод sort его использует обычным сравнением объект[i]<объект[j]
RiG1
 Аватар для RiG1
28 / 28 / 0
Регистрация: 12.03.2011
Сообщений: 466
18.12.2011, 23:27  [ТС]     Доступ к полям класса #13
Chelioss, а можно как для дауна написать?
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.12.2011, 23:30     Доступ к полям класса #14
Добавляете в тело класса Abonents то, что я выше написал. Доступ должен быть public.
Используете list.sort();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2011, 23:53     Доступ к полям класса
Еще ссылки по теме:

C++ Обращение в методах класса к полям класса
C++ Доступ к полям структуры по номерам
Полиморфизм и доступ к полям потомков C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
18.12.2011, 23:53     Доступ к полям класса #15
RiG1, можете воспользоваться функтором из этого примера(второй листинг)
C++
1
list.sort(StructMemberLessCmp<Abonents, int>(&Abonents::Number));
таким образом вы легко сможете сортировать список по любому из полей структуры.
Yandex
Объявления
18.12.2011, 23:53     Доступ к полям класса
Ответ Создать тему
Опции темы

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