|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||||||||||||
Покритикуйте код02.10.2011, 23:28. Показов 11423. Ответов 116
Метки нет (Все метки)
Есть класс Студенты (реализован через односвязный список), хотел бы услышать критику по поводу его улучшения, если кому не лень разбираться в столь поздний час
Сам код естественно полностью рабочий и предупреждений тоже компилятор не выдаёт (если не считать в main в условии while, но там всё ок) так что хотелось бы услышать Ваши замечания если что можно сделать лучше.Students.h
0
|
||||||||||||||||
| 02.10.2011, 23:28 | |
|
Ответы с готовыми решениями:
116
Покритикуйте код Графы. Покритикуйте код Пожалуйста, покритикуйте код |
|
Заблокирован
|
|
| 03.10.2011, 19:36 | |
|
0
|
|
| 03.10.2011, 19:46 | |
|
Не по теме: talis, да я пошутил. Разве это не понятно?
0
|
|
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||
| 03.10.2011, 20:19 [ТС] | |||
|
ForEveR, так Вы swap в первый раз хотели ) Разберусь полностью с Вашей реализацией сегодня чуть позже или завтра утром, к сожалению (или к счастью? Хотя наверное к сожалению, слишком много на эти пол года, в то время как предыдущие пол года было больше предметов вроде тв) у меня в этом году кроме с++ ещё и vba, matlab и uml. По поводу функций вроде удаления из списка и т.д то если не выбрасывать исключения я тут подумал я могу ещё сделать их булевскими, те возвращающими результат операции (удачно/не удачно), это мне тут такая идея пришла. Инкремент итератора я булевским естественно не сделаю.
0
|
|||
|
|
||
| 03.10.2011, 20:26 | ||
|
0
|
||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 03.10.2011, 20:33 | ||
|
А потом мучайся с такими программистами... ничему хорошему не научат, только корочки дадут.(
0
|
||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||
| 03.10.2011, 21:59 [ТС] | ||
|
1
|
||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
| 03.10.2011, 23:30 [ТС] | |
|
Jupiter, спасибо, интересно, почитаю, до этого почему-то не сталкивался с ней.
0
|
|
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||||||||||
| 05.10.2011, 23:20 [ТС] | |||||||||||
|
Хотелось бы узнать правильно ли я понял эту идиому copy-swap. Вот я набросал сам для себя пример со своими студентами, вроде работает, но правильно ли всё сделано?
0
|
|||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 05.10.2011, 23:24 | |
|
Gepar, Функция гарантированно не генерирует исключений.
0
|
|
|
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
|
|
| 05.10.2011, 23:24 | |
|
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 05.10.2011, 23:29 | ||||||
|
Gepar,
В конструкторе копирования вы создаете временный объект через конструктор копирования. Привет бесконечная рекурсия. swap безопаснее делать приватной функцией класса, если она используется только для идиомы copy/swap. В вашем случае вообще бессмысленно писать конструктор копирования/оператор присваивания - компилятор сгенерирует их по умолчанию. Оператор присваивания реализован верно. Добавлено через 45 секунд ITZver, Заблуждение. Спецификатор throw() указывает что функция не может выбрасывать исключений.
0
|
||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||||||
| 05.10.2011, 23:38 [ТС] | |||||||
|
ForEveR, но у меня нет рекурсии (я же в main тестировал) код да и почему должна быть рекурсия? Хотя я до конца не понимаю ещё одну строку (делал по примеру в вики):
0
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 05.10.2011, 23:46 | ||||||
|
Gepar, Правда нет?
Добавлено через 1 минуту Gepar, В том фрагменте что вы привели создается временный объект типа CStudent из объекта const CStudent (вызывается конструктор копирования) и затем идет swap с объектом который есть сейчас - итог: временный объект удаляется сразу же, а в this нужные данные.
1
|
||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||||||||||
| 05.10.2011, 23:55 [ТС] | |||||||||||
|
ForEveR, правда-правда
Добавлено через 1 минуту Хм, перекомпилировал и получил что программа экстренно завершается, странно, а до этого ведь компилировалась, нука ... Добавлено через 1 минуту Мда, и впрямь вылет идёт, хотя рекурсии не наблюдается.
0
|
|||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 05.10.2011, 23:59 | |
|
Gepar, Потому что мы создаем НОВЫЙ объект. Через конструктор копирования. Ведь в оператор присваивания мы подаем const CStudent&. А swap принимает ссылку на неконстантный объект.
Добавлено через 1 минуту http://liveworkspace.org/code/... 41d7c129e5 Бесконечная рекурсия, о чем я и говорю
0
|
|
|
|
||||||||||||
| 06.10.2011, 00:14 | ||||||||||||
Добавлено через 2 минуты Вот рекурсия:
0
|
||||||||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||
| 06.10.2011, 00:23 [ТС] | ||||||
|
Небольшой вопрос ещё, не будет ли дурным тоном если я добавлю конструктор в ListItem
0
|
||||||
|
|
|
| 06.10.2011, 00:25 | |
|
Gepar, конструкторы для того и нужны
Только передавайте const CStudent &
0
|
|
| 06.10.2011, 00:25 | |
|
Покритикуйте код финкции нахождения интеграла Покритикуйте и помогите улучшить код моей игры Покритикуйте пожалуйста программу
Шифратор пароля. Покритикуйте пожалуйста. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|