|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||||||||||||
Покритикуйте код02.10.2011, 23:28. Показов 10409. Ответов 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 | |
|
Покритикуйте код финкции нахождения интеграла Покритикуйте и помогите улучшить код моей игры Покритикуйте пожалуйста программу
Шифратор пароля. Покритикуйте пожалуйста. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне.
Это уже новая модель, модель сукцессии грибной.
потоки фосфора, азота. Углерода.
5 видов организмов.
Я даже. . .
|
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ
Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
|